JavaのBigDecimalの比較とstripTrailingZerosメソッドと指数表記

JavaのBigDecimal型の比較はcompareToでします。

例えば100.0と100はcompareToで比較するとtrueです。

また100.0と指数表記の1E+2もcompareToで比較するとtrueです。

Objects.eualsを使うと100.0と100はfalseですし、100.0と1E+2もfalseになります。

今回再認識したのはBigDecimalの比較はやっぱりcompareToで行うということです。

BigDecimalのstripTrailingZerosメソッドを使用すると指数表記になるときがあります。

このメソッドは小数点以下の0を省いてくれます。

こういう予期せぬこともありうるためObjects.equalsでBigDecimalを比較するのではなく、BigDecimalの比較はcompareToを使うべきです。

関西で140-170/80~120万から受け付けております^^
得意技はJS(ES6),Java,AWSの大体のリソースです
Python3.6,Djangoを勉強中です,Javaは少し飽きてしまってます–;
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくば、我に七難八苦を与えたまえ」です^^

スポンサーリンク
  • このエントリーをはてなブックマークに追加
スポンサーリンク

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA