Javascript Highcharts numberFormat返回负零
我正在使用Highcharts,并注意到有时当图表的值非常接近零时,它会将y轴标签或工具提示值格式化为“-0.00” 我尝试了以下代码:Javascript Highcharts numberFormat返回负零,javascript,highcharts,Javascript,Highcharts,我正在使用Highcharts,并注意到有时当图表的值非常接近零时,它会将y轴标签或工具提示值格式化为“-0.00” 我尝试了以下代码: Highcharts.numberFormat(-0.00002,2) 它返回“-0.00”。它应该是“0.00” 我尝试用Highcharts包装numberFormat函数。包装以捕获此案例,但没有成功,我的包装没有执行。这是我的密码: $(document).ready(function () { (function (H) {
Highcharts.numberFormat(-0.00002,2)
它返回“-0.00”。它应该是“0.00”
我尝试用Highcharts包装numberFormat
函数。包装
以捕获此案例,但没有成功,我的包装没有执行。这是我的密码:
$(document).ready(function () {
(function (H) {
H.wrap(H, 'numberFormat', function (proceed, number, decimals, decPoint, thousandsSep) {
var originalResult = proceed.call(number, decimals, decPoint, thousandsSep);
var result = originalResult.isMinusZero() ? originalResult.cutMinusSign() : originalResult;
return result;
});
}(Highcharts));
});
有人能找到我的错误或提供其他解决方案吗?
wrap
使用prototype中的方法可以很好地工作,尝试以这种方式覆盖numberFormat:
(function (H) {
var proceed = H.numberFormat;
H.numberFormat = function (number, decimals, decPoint, thousandsSep) {
var originalResult = proceed(number, decimals, decPoint, thousandsSep);
var result = originalResult.isMinusZero() ? originalResult.cutMinusSign() : originalResult;
return result;
};
}(Highcharts));
Highcharts.numberFormat(-0.002, 4);
现场演示:Highcharts.numberFormat()没有问题。。它正在使用JavaScript
toFixed()
函数。它只是告诉你零的哪一边是你的号码。例如:var num=-0.00002;num.toFixed(2)
返回“-0.00”。再次调用num.toFixed(5)
将返回您的原始号码:“-0.00002”@AntoJurković您的评论不完全正确Highcharts.numberFormat()
正在使用toFixed()
,但仅在调用abs()
(mathAbs(n).toFixed(c)
)之后使用。它会先检查数字是否为负数(保存一个带符号的字符串:s=n<0?”-“:”
)。您是对的。我简化了一点。但这个标志仍然保留着。