この単純なプログラムの実行:
public static void main(final String... args)
{
System.out.println(BigDecimal.ZERO.scale());
System.out.println(new BigDecimal("0").scale());
System.out.println(new BigDecimal("0.0").stripTrailingZeros().scale());
System.out.println(new BigDecimal("1.0").stripTrailingZeros().scale());
}
出力:
0
0
1
0
私の質問はかなり単純です:なぜ3番目のprintln
出力がないの0
ですか?それは論理的に見えるでしょう...
編集:わかりました、それで、これは非常に古いバグです:
実際、これは任意の数のゼロに対して「機能」します。つまりnew BigDecimal("0.0000").stripTrailingZeroes().scale()
4です。