2017-05-30 12 views
0

JSONでBigDecimal番号を「数値」として出力するために、apiエンドポイントを作成しようとしています。 HighChartsには、文字列ではなく数値でなければなりません。しかし、文字列ではなく、実数として表示されたBigDecimal番号を持つJSONオブジェクトを作成することはできませんでした。私はこのような何かを生成する必要がRails BigDecimalハイチャート用のJSON出力

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

thisのようなウェブ上でこの質問に対する多くの回答がありますが、それらのすべてが.to_f経由フロートするのBigDecimalに変換することをお勧めします。そして、それは何の意味もありません。なぜなら、小数点以下を使って正確な精度が得られるからです。これは、Floatでは当てはまりません。

+3

「HighCharts」は、フロントエンドライブラリです。つまり、JavaScriptです。 1つは何でも保存するかもしれませんが、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

これで問題は解決しましたか? –