2017-05-30 30 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

這是否解決了您的問題? –