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"是啥意思啊?

移除 style="display:none;" 时的 CSS 高度过渡

如何在 WindowStyle="None" 的 WPF 窗口中强制执行 MinWidth 和 MinHeight?