スケーリング、我々は与えられた数が範囲内にあるかどうか と、このために、我々はコードの下に使用しているかどうかを確認する必要があります -指数表記のためのBigDecimalにおける問題(Java)の我々のアプリケーションで
boolean isValidRangeNumber(Double no,int precision, int scale){
BigDecimal bigDecimal = new BigDecimal(no.toString());
int intPartLength = precision - scale;
int size = (bigDecimal.longValue() + "").toString().length();
if(bigDecimal.precision() <= precision && bigDecimal.scale() <= scale && size <= intPartLength)
return true;
return false;
}
しかし、私たちをisValidRangeNumber(0.0000009, 10,7)
を呼び出しているのは、bigDecimal.scale()
が8を与えているためです。これは有効な数字であるのに対し、max 7にすることができます。このBigDecimalの使い方に何が問題なのかをお聞かせください。
は検証が行うことになっているかを説明することはできますか?バグのあるコードから正しい振る舞いを推測するのは難しいです。 – Henry
は、入力された数値に小数点の前後の桁数が必要かどうかを確認します。 –