私はJavaを使い慣れず、BigDecimal(たとえば99999999.99)を文字列に変換しようとしましたが、小数点および末尾の数字は使用しません。また、数字にコンマは必要なく、丸めは不要です。Java BigDecimalは10進数と末尾の数字を削除します
私が試してみた:
Math.Truncate(number)
をしかしBigDecimalのはサポートされていません。
アイデア?
ありがとうございました。
私はJavaを使い慣れず、BigDecimal(たとえば99999999.99)を文字列に変換しようとしましたが、小数点および末尾の数字は使用しません。また、数字にコンマは必要なく、丸めは不要です。Java BigDecimalは10進数と末尾の数字を削除します
私が試してみた:
Math.Truncate(number)
をしかしBigDecimalのはサポートされていません。
アイデア?
ありがとうございました。
はnumber.toBigInteger().toString()
これを使用してみてください。
BigDecimal truncated= number.setScale(0,BigDecimal.ROUND_DOWN);
分数のないBigDecimalはBigIntegerです。 BigIntegerを使ってみませんか?
private void showDoubleNo(double n) {
double num = n;
int decimalPlace = 2;
BigDecimal bd = new BigDecimal(num);
bd = bd.setScale(decimalPlace,BigDecimal.ROUND_UP);
System.out.println("Point is "+bd);
}
ここで私は、この解決することが分かっ最もエレガントな方法です:
public static String convertDecimalToString (BigDecimal num){
String ret = null;
try {
ret = num.toBigIntegerExact().toString();
} catch (ArithmeticException e){
num = num.setScale(2,BigDecimal.ROUND_UP);
ret = num.toPlainString();
}
return ret;
}
public static String convertBigDecimalToString(BigDecimal bg) {
System.out.println("Big Decimal Value before its convertion :" + bg.setScale(2, BigDecimal.ROUND_HALF_UP));
String bigDecStringValue = bg.setScale(0,BigDecimal.ROUND_HALF_UP).toPlainString();
System.out.println("Big Decimal String Value after removing Decimal places is :" + bigDecStringValue);
return bigDecStringValue;
}
ご注意:私は「BigDecimal.ROUND_HALF_UP」を使用していた、念のために向かって丸める丸めモードは、両方の隣人が等距離でない限り、「最近隣」
完璧、ありがとう。 –