【发布时间】:2017-05-24 09:15:56
【问题描述】:
d3 documentation 声明 (none) 格式类型“与 g 类似,但会删除无关紧要的尾随零”。 g 格式类型使用“十进制或指数表示法,四舍五入到有效数字。”
Mike Bostock explained 认为“无格式类型会修剪尾随零,但精度被解释为有效数字而不是小数点后的位数。”
如果我使用d3.format('.2')(2.0),我会得到2(删除尾随零)。
但是当我使用d3.format('.2')(2.001) 时,结果是2.001:不会发生舍入。我本来希望结果是2.0(四舍五入到两位有效数字,但保留零)或2(四舍五入到两位有效数字,然后去掉零)。
这是一个错误,还是我误解了语法?
【问题讨论】:
-
嘿,你错了,请正确阅读文档here
-
您正在使用
d3.format('.2')(2.001),但您提到了任何类型,d3.format('.1f')(2.001)这就是您要寻找的,这里.1f表示固定位置,直到 1 精度。要获得 1 精度的舍入值,请使用d3.format('0.1fd')这将d3.format('0.1fd')(2.981)然后你得到 3.0 -
@saikiran.vsk:感谢您的评论。我的问题是关于
(none)类型(您链接到的文档中可用类型列表中的最后一个条目),它应该对数字进行舍入并省略尾随零。.1f类型不会省略尾随零。 -
@Jake 我不知道,你是如何得到结果的......对我来说
d3.format('.2')(2.001)返回"2"这是预期的行为:四舍五入到两位有效数字 (2.0) 并删除尾随零。 -
@Jake 由于问题不再存在,我建议您删除问题,或者最好写一个自我回答来解释版本不匹配。我认为这对像你这样的人来说真的是一个很大的帮助,来自 plot.ly 的绊脚石。