1

我正在经历类十进制格式,因为我正在尝试将 Java 中的十进制数格式化为小数点后 2 位或小数点后 3 位。

我提出了如下所示的解决方案,但也请让我知道 java 是否为我们提供了其他替代方法来实现相同的目标..!!

import java.text.DecimalFormat;

public class DecimalFormatExample {   

    public static void main(String args[])  {

        //formatting numbers upto 2 decimal places in Java
        DecimalFormat df = new DecimalFormat("#,###,##0.00");
        System.out.println(df.format(364565.14));
        System.out.println(df.format(364565.1454));

        //formatting numbers upto 3 decimal places in Java
        df = new DecimalFormat("#,###,##0.000");
        System.out.println(df.format(364565.14));
        System.out.println(df.format(364565.1454));
    }

}

Output:
364,565.14
364,565.15
364,565.140
364,565.145

请告知 java 为我们提供了哪些其他替代方案来实现相同的目标..!!

4

3 回答 3

1

如果您对重新DecimalFormat定义String.format(). 检查特别是数字子标题的语法。Formatter

于 2012-08-22T17:37:43.287 回答
0

这是四舍五入的替代方法...

double a = 123.564;
double roundOff = Math.round(a * 10.0) / 10.0;
System.out.println(roundOff);
roundOff = Math.round(a * 100.0) / 100.0;
System.out.println(roundOff);

输出是

123.6
123.56

0乘除 时的 s 数决定四舍五入。

于 2012-08-22T17:56:39.870 回答
0

这是一种方法。

float round(float value, int roundUpTo){
     float x=(float) Math.pow(10,roundUpTo);
     value = value*x; // here you will guard your decimal points from loosing
     value = Math.round(value) ; //this returns nearest int value
     return (float) value/p;
}
于 2012-08-22T18:14:39.153 回答