私はJavaが初めてで、BigDecimal(99999999.99など)を取得して文字列に変換しようとしていますが、小数点以下の桁数と末尾の数字はありません。また、数字にコンマを入れたくないので、丸めは必要ありません。
私はもう試した:
Math.Truncate(number)
ただし、BigDecimal はサポートされていません。
何か案は?
どうもありがとう。
私はJavaが初めてで、BigDecimal(99999999.99など)を取得して文字列に変換しようとしていますが、小数点以下の桁数と末尾の数字はありません。また、数字にコンマを入れたくないので、丸めは必要ありません。
私はもう試した:
Math.Truncate(number)
ただし、BigDecimal はサポートされていません。
何か案は?
どうもありがとう。
これを使って。
BigDecimal truncated= number.setScale(0,BigDecimal.ROUND_DOWN);
試すnumber.toBigInteger().toString()
分数のない BigDecimal は BigInteger です。BigInteger を使用しないのはなぜですか?
これを解決するために私が見つけた最もエレガントな方法は次のとおりです。
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;
}
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 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' を使用しました.