【问题标题】:d3.format "none" type not roundingd3.format "none" 类型不四舍五入
【发布时间】: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 的绊脚石。

标签: d3.js number-formatting


【解决方案1】:

发生这种情况是因为我使用的是旧版本的 d3(3.5.17,它与当前版本的 plot.ly 1.27.1 一起提供)。

在该版本的 d3 中,(无)格式类型 doesn't exist。它于 2015 年推出。

【讨论】:

    猜你喜欢
    • 2015-03-03
    • 2023-01-03
    • 2023-01-12
    • 1970-01-01
    • 2012-08-04
    • 2023-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多