2017-05-30 29 views
0

我想让api终端在JSON中输出BigDecimal数字作为“数字”。 HighCharts要求任何数字值是一个数字而不是一个字符串。但我无法制作一个JSON对象,其中BigDecimal数字显示为实数,而不是字符串或其他任何内容。Rails HighDerts的BigDecimal JSON输出

我需要生成这样的事情:

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

有很多答案,像this在网络上这个问题,但是他们都建议通过BigDecimal通过.to_f为浮动转换。而且,这没有任何意义,因为我们使用小数具有与Float不同的精确精度。

+3

'HighCharts'是一个前端库,也就是javascript。有人可能会保留,但JavaScript将使用浮动。 – mudasobwa

回答

3

你可以“圆”这些数字,以“数字”

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" 
+0

这是否解决了您的问题? –