おそらく java.math.BigDecimal
は scale が違っていると equals が false を返す。たとえば 0 と 0.0 は違うものになる。 stripTrailingZeros
で末尾の zero を消して scale を揃えると equals true になる。分かりにくいバグになりそうだけど Java 界隈のひとたちはどうしているのだろう。そもこれを使わないのか。
// Kotlin assertEquals("0", 0.toBigDecimal().toString()) assertEquals("0", 0.toBigDecimal().toPlainString()) assertEquals("0.0", 0.0.toBigDecimal().toString()) assertEquals("0.0", 0.0.toBigDecimal().toPlainString()) assertNotEquals(0.toBigDecimal(), 0.0.toBigDecimal()) assertEquals("0", 0.0.toBigDecimal().stripTrailingZeros().toString()) assertEquals("0", 0.0.toBigDecimal().stripTrailingZeros().toPlainString()) assertEquals(0.toBigDecimal(), 0.0.toBigDecimal().stripTrailingZeros()) assertEquals(0.toBigDecimal().stripTrailingZeros(), 0.0.toBigDecimal().stripTrailingZeros()) assertEquals("100", 100.toBigDecimal().toString()) assertEquals("100", 100.toBigDecimal().toPlainString()) assertEquals("1E+2", 100.toBigDecimal().stripTrailingZeros().toString()) assertEquals("100", 100.toBigDecimal().stripTrailingZeros().toPlainString()) assertNotEquals(100.toBigDecimal(), 100.toBigDecimal().stripTrailingZeros()) assertEquals(100.toBigDecimal().stripTrailingZeros(), 100.toBigDecimal().stripTrailingZeros())
Oxygen Not Included 750 サイクルで打ち切って次の基地へ。打ち上げはできたがクリアはならなかった。 3 人基地は楽しかった。
今回は Rime で開始。目標は "Home Sweet Home" 。 12 人基地でモニュメントを目指す。