d3.format "none" 类型不四舍五入
Posted
技术标签:
【中文标题】d3.format "none" 类型不四舍五入【英文标题】:d3.format "none" type not rounding 【发布时间】: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 的绊脚石。
【参考方案1】:
发生这种情况是因为我使用的是旧版本的 d3(3.5.17,它与当前版本的 plot.ly 1.27.1 一起提供)。
在该版本的 d3 中,(无)格式类型 doesn't exist。它于 2015 年推出。
【讨论】:
以上是关于d3.format "none" 类型不四舍五入的主要内容,如果未能解决你的问题,请参考以下文章
style="display:none" 不起作用。 jQuery 切换()
style="display:none" 的 CSS 替代品
Android EditText inputType="none" 不起作用,变成“textMultiLine”
div class="" style="display:none"是啥意思啊?