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?
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
Vous devez vous connecter pour publier un commentaire.
De répondre à cette question en se basant sur Billy Réverbération commentaire:
Il suffit de remplacer ces attributs:
pour cela:
OriginalL'auteur Bruno De Freitas Barros
Une solution plus simple est d'utiliser
dans le pointFormat chaîne
Un génie, juste ce que je cherchais! .1f signifie 1 lieu de flottement. f signifie flotteur.
OriginalL'auteur Steve Harris
Pour moi le upvoted solution n'a pas fonctionné:
mais ce n':
OriginalL'auteur edelans
Avant d'aller en tête-bureau-chef-bureau, tout en essayant de formater le pourcentage.
Voici quelques façons de le faire:
(Math.round(this.point.percentage*100)/100) + ' %'
Highcharts.numberFormat(this.percentage, 1) + '%'
this.percentage.toFixed(1)
{point.percentage}% or {point.percentage:.1f}%
J'utilise souvent #4 dans les info-bulles et les étiquettes, et quand ne pas utiliser une mise en forme personnalisée fonction.
OriginalL'auteur Jens A. Koch