Highcharts饼图忽略百分比十进制工具提示设置并且存在浮点不准确问题

Bil*_*erb 8 decimal floating-accuracy percentage highcharts pie-chart

在饼图上显示工具提示时,Highcharts 3.0似乎有浮点数精度问题.我能够通过使用一个highcharts演示饼图--Pie with Legend来重新创建确切的错误.单击"在JsFiddle中编辑"以编辑javascript.

在javascript面板中,查找系列和数据部分.保留Firefox和IE数据并丢弃其余数据,这样我们就可以专注于2片馅饼.两个数据夹头没有百分比加起来,因此highcharts将重新计算我们的百分比.单击顶部的"运行"按钮,将鼠标悬停在切片上,百分比非常准确,最大小数位数.但是等一下,看看javascript工具提示选项,highcharts显然忽略了"percentageDecimals:1"设置.这是问题#1.

现在让我们手动编辑数据百分比,如下所示:['Firefox',57.7],['IE',42.3]所以它​​们确实加起来恰好是100.0.再次点击运行按钮,切片工具提示显示'Firefox:57.0000000000001%'和'IE:42.3%'.无论百分比是否加起来,看起来都是百分比重新计算,因此这里引入了一个小的浮点不准确.这是问题#2.如果在这种情况下"percentageDecimals"舍入工作,这个问题可能是伪装的.

我想知道:*其他人看到同样的问题并进行某种解决方法吗?*highcharts能否回应这些问题并让我们知道他们是否已知错误?

Bru*_*ros 16

根据Billy Reverb的评论回答这个问题:

只需替换此属性:

tooltip: {
    pointFormat: '{series.name}: <b>{point.percentage}%</b>',
    percentageDecimals: 1
}
Run Code Online (Sandbox Code Playgroud)

为了这:

tooltip: {
    formatter: function () {
                   return this.point.name + ': <b>' + Highcharts.numberFormat(this.percentage, 1) + '%</b>';
               }
}
Run Code Online (Sandbox Code Playgroud)


Ste*_*ris 14

一个更简单的解决方案是使用

{point.percentage:.1f}%
Run Code Online (Sandbox Code Playgroud)

在pointFormat字符串中