Highcharts camembert ignore percentageDecimals info-bulle et avait virgule flottante inexactitude problème

Highcharts 3.0 semble avoir nombre à virgule flottante de précision problème lors de l'affichage des info-bulles sur un graphique en secteurs. J'ai été en mesure de recréer la même erreur en utilisant l'une des highcharts démo graphique à secteurs - La tarte avec la Légende. Cliquez sur "Modifier dans JsFiddle" pour modifier le javascript.

À l'intérieur du javascript panneau, regardez la série et de la section de données. Garder l'IE et Firefox données et jeter le reste des données, de sorte que nous pouvons nous concentrer sur seulement 2 tranches de tarte. Les données de deux plateaux n'ont pas le pourcentage d'ajouter jusqu'à 100, donc highcharts va recalculer les pourcentages pour nous. Cliquez sur le bouton Exécuter en haut, passez la souris sur les tranches, les pourcentages sont très précis avec le nombre maximal de décimales. Mais attendez, regardez le javascript tooltip option, highcharts est clairement en ignorant le "percentageDecimals: 1". C'est la question #1.

Maintenant, nous allons modifier manuellement les données des pourcentages comme suit:
[ 'Firefox', 57.7 ],
["IE", 42.3]
Donc, ils ont à faire exactement 100.0. Hit bouton Exécuter de nouveau, les tranches d'affichage des info-bulles 'de Firefox: 57.0000000000001%' et 'c'est à dire: 42.3%'. Il ressemble à un pourcentage de nouveau calcul a été fait, peu importe si les pourcentages d'ajouter jusqu'à 100 ou pas, donc l'introduction d'une petite virgule flottante inexactitude ici. C'est le numéro 2. A la "percentageDecimals" arrondissement travaillé dans ce cas, ce problème aurait pu être déguisée.

Je voudrais savoir:
* Quiconque de voir le même problème et avoir une sorte de travail?
* Peut highcharts répondre à ces questions et laissez-nous savoir si ils sont des bugs connus?

Je ne sais pas pourquoi il est "percentageDecimals" mais bien sûr, il n'y a pas une telle option dans Highcharts. Quant à l'inexactitude, essayez en JS calculer 0.1 + 0.2 et regarder les effets. Que puis-je conseille de supprimer pointFormat et utiliser juste une info-bulle.module de formatage.
Merci Pawel. J'ai été en mesure d'utiliser d'info-bulle.formatter = function() { return this.point.nom + ': <b>' + Highcharts.numberFormat(ce.pourcentage, 1) + '%</b>'; }
Vous pouvez également utiliser simplement this.percentage.toFixed(1) 🙂

OriginalL'auteur Billy Reverb | 2013-04-09