BigDecimalのコンストラクタ

Javaで小数点を扱う際は、double/floatでも扱えますが、精度の高いBigDecimalを使用するのが一般的かと思います。

BigDecimalのコンストラクタはいくつか用意されていますが、char[], Stringで文字列をとって宣言したり、int, long で数値をとって宣言することができます。小数点も指定可能です。

// String
BigDecimal dS = new BigDecimal("1.2");
// 1.2

// Char[]
BigDecimal dC = new BigDecimal(new char[]{"1", ".", "2"});
// 1.2

// int, long
BigDecimal dil = new BigDecimal(12, 1);
// 1.2

doubleもコンストラクタに使用することができますが、浮動小数点の性質により誤差が発生します。

// double
BigDecimal dd = new BigDecimal(1.2);
// 1.1999999999999999555910790149937383830547332763671875

文字列を数値に変換したり、実数部と整数桁を分割するほかのコンストラクタよりも直感的で、例のように直接数値を代入する場合に型が何かを意識せず、やってしまう人もいるのではないでしょうか(1敗)。

IDEは警告してくれませんが、FindBugsで警告してくれるとのことなので、ちゃんと設定するとよいかと思います。