【问题标题】:Rails BigDecimal JSON output for Highcharts用于 Highcharts 的 Rails BigDecimal JSON 输出
【发布时间】:2017-05-30 06:36:00
【问题描述】:

我正在尝试创建一个 api 端点以将 BigDecimal 数字输出为 JSON 中的“数字”。 HighCharts 要求任何数值都是数字而不是字符串。但我无法创建一个 JSON 对象,其中 BigDecimal 数字显示为实数,而不是字符串或其他任何内容。

我需要生成这样的东西:

[[123000, 235436.352642],[127000, 9434.2352663], ... ]

网上有很多关于这个问题的答案,比如this,但他们都建议通过.to_f 将 BigDecimal 转换为 Float。而且,这没有任何意义,因为我们使用小数来获得精确的精度,而浮点不是这种情况。

【问题讨论】:

  • HighCharts 是一个前端库,也就是javascript。可以保留任何东西,但 javascript 无论如何都会使用浮点数。

标签: ruby-on-rails json highcharts ruby-on-rails-5


【解决方案1】:

您可以将这些数字“四舍五入”为“数字”

v = BigDecimal("7.176231231231231")
sprintf("%.6f", v)
# => "7.176231"

您还可以将truncate 字符串到函数上以获得更具体的四舍五入数字(在将这些数据用于图表时可能很有用)。

v = BigDecimal("7.176231231231231")    
sprintf("%.6f", v)
# => "7.176231"
sprintf("%.6f", v.truncate(2))
# => "7.170000"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-22
    • 2018-06-02
    • 2012-09-14
    • 1970-01-01
    • 1970-01-01
    • 2015-09-05
    • 2011-05-20
    相关资源
    最近更新 更多