d3.scale.linear()
.domain([-0.505, 1])
.nice()
.domain();
返回此
[-0.6000000000000001, 1]
但我真正想要的是这个
[-0.6, 1]
编辑:
如评论中所述,Is floating point math broken?中解释了这一原因。
这个问题是关于在d3环境中获得所需结果的最佳方法。也许最好的方法就是字符串格式化。但是,我想看看是否有人对这个特殊情况有一个新颖的解决方案。
答案 0 :(得分:0)
尝试转换为具有固定精度的字符串并返回到数字:
d3.scale.linear()
.domain([-0.505, 1])
.nice()
.domain()
.map(function(val) { return +val.toFixed(10); });
这会产生
[-0.6, 1]