21

私はJavaが初めてで、BigDecimal(99999999.99など)を取得して文字列に変換しようとしていますが、小数点以下の桁数と末尾の数字はありません。また、数字にコンマを入れたくないので、丸めは必要ありません。

私はもう試した:

Math.Truncate(number)

ただし、BigDecimal はサポートされていません。

何か案は?

どうもありがとう。

4

6 に答える 6

61

これを使って。

BigDecimal truncated= number.setScale(0,BigDecimal.ROUND_DOWN);
于 2009-08-22T21:34:37.337 に答える
47

試すnumber.toBigInteger().toString()

于 2009-08-22T20:22:16.720 に答える
7

分数のない BigDecimal は BigInteger です。BigInteger を使用しないのはなぜですか?

于 2009-08-22T21:46:23.990 に答える
5

これを解決するために私が見つけた最もエレガントな方法は次のとおりです。

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;
}
于 2015-09-06T21:07:23.900 に答える
0
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); 
}
于 2012-10-30T10:06:32.700 に答える
0
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' を使用しました.

于 2016-11-24T08:36:48.417 に答える