Highcharts 3.0 scheint Gleitkommazahlgenauigkeitsproblem zu haben, wenn Tooltips in einem Kreisdiagramm angezeigt werden. Ich war in der Lage, den genauen Fehler neu zu erstellen, indem ich eines der Highcharts Demo-Kreisdiagramm verwendete - Pie with Legend. Klicken Sie auf "Edit in JsFiddle", um das Javascript zu bearbeiten.Highcharts-Kreisdiagramm ignoriert Prozentsatz tooltip-Einstellung und hat Gleitkomma-Ungenauigkeit Problem
Suchen Sie im JavaScript-Fenster nach dem Abschnitt für Serien und Daten. Behalten Sie die Firefox- und IE-Daten bei und verwerfen Sie den Rest der Daten, damit wir uns auf nur zwei Scheiben Kuchen konzentrieren können. Die beiden Daten-Chucks haben keinen Prozentsatz, der zu 100 addiert, so dass Highcharts die Prozentsätze für uns neu berechnen. Klicken Sie oben auf die Schaltfläche Run, fahren Sie mit der Maus über die Slices. Die Prozentwerte sind sehr genau und die Anzahl der Dezimalstellen ist sehr hoch. Aber warten Sie, schauen Sie sich die Javascript Tooltip-Option an, Highcharts ignoriert eindeutig die Einstellung "prozentuale Dezimalstellen: 1". Das ist Problem Nr. 1.
Lassen Sie uns jetzt die Daten manuell Prozentsätze wie folgt bearbeiten: [ ‚Firefox‘, 57,7], [ ‚IE‘, 42,3] So tun sie genau 100,0 addieren. Drücken Sie die Run-Taste erneut, die Tooltips der Slices zeigen 'Firefox: 57.0000000000001%' und 'IE: 42.3%' an. Es sieht so aus, als ob eine prozentuale Neuberechnung durchgeführt wurde, unabhängig davon, ob sich die Prozentsätze zu 100 addieren oder nicht, wodurch hier eine kleine Gleitkomma-Ungenauigkeit eingeführt wird. Dies ist Problem Nr. 2. Hätte in diesem Fall die Rundung "prozentuale Dezimalstellen" funktioniert, hätte dieses Thema verschleiert werden können.
Ich würde gerne wissen: * Wer sonst sieht das gleiche Problem und eine Art von Work-Around? * Können Highcharts auf diese Probleme reagieren und uns mitteilen, ob es sich um bekannte Fehler handelt?
Ich weiß nicht, warum es "prozentualeDecimals" gibt, aber natürlich gibt es keine solche Option in Highcharts. Was die Ungenauigkeit angeht, versuche in JS 0,1 + 0,2 zu berechnen und Effekte zu beobachten. Was kann ich empfehlen, PointFormat zu entfernen und nur tooltip.formatter zu verwenden. –
Danke Pawel. Ich konnte verwenden tooltip.formatter = function() { Rückgabe this.point.name + ': ' + Highcharts.numberFormat (this.percentage, 1) + '%'; } –
Sie können auch einfach 'This.percentage.toFixed (1)' :) –