私は Web サイトのレポートに取り組んでおり、現在 BigDecimal -0.0 を処理する最善の方法を考えています。
私が扱っているデータベースには、それらがたくさんあります。これらの -0.0 を通すnumber_to_currency()
と、「$-0.00」となります。負の数値の私の形式は実際には「-$x.xx」なので、number_to_currency が負の数値として書式設定されていないことに注意してください (そうしないと、ドル記号の前に負の記号が表示されます)、何らかの理由で負の符号は 0 とともに変換されています。
現在、私の解決策は、データベースから金額を取得するたびにこれを行うことです。
amount *= -1 if amount == 0 && amount.sign == -1
これにより、-0.0 が 0.0 に変更されます。それは十分に単純ですが、私が見つけていないこの状況を処理するためのより良い解決策、または BigDecimals または number_to_currency に何かがあるかどうか疑問に思わずにはいられません。