Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在不重新分配给新变量的情况下,将java的小数点四舍五入到两位_Java_Decimal - Fatal编程技术网

在不重新分配给新变量的情况下,将java的小数点四舍五入到两位

在不重新分配给新变量的情况下,将java的小数点四舍五入到两位,java,decimal,Java,Decimal,我有下面的代码,其中我需要将数值打印到小数点后两位,去掉数字中的点(.)。 然而,有时它打印到小数点后两位,有时最多三位 public class CheckSubString3 { public static void main(String[] args) { Double[] d={134344.00d,234434.08d,234434.02d}; for(int i=0; i<d.length; i++){ Sy

我有下面的代码,其中我需要将数值打印到小数点后两位,去掉数字中的点(.)。 然而,有时它打印到小数点后两位,有时最多三位

public class CheckSubString3 {

    public static void main(String[] args) {

        Double[] d={134344.00d,234434.08d,234434.02d};
        for(int i=0; i<d.length; i++){
            System.out.println((d[i])*(25)/100);
            System.out.println(parseLonggetFormattedAmount((d[i])*(25)/100));
            System.out.println();
        }

    }

    private static String parseLonggetFormattedAmount(double d) {
        DecimalFormat format = (DecimalFormat) NumberFormat
                .getInstance(new Locale("en", "gb"));
        format.setMinimumFractionDigits(2);
        FieldPosition f = new FieldPosition(0);
        StringBuffer s = new StringBuffer();
        String value = format.format(d, s, f).toString().replace(',', ' ')
                .replace('.', ' ');
        return value.replaceAll(" ","");
    }
}
根据,您可以使用
setMaximumFractionDigits(int newValue)

设置数字小数部分允许的最大位数

只需将其放入函数中
parseLonggetFormattedAmount(双d)


似乎您只想将double乘以100,然后四舍五入到最接近的整数。所以你的方法可以写成:

private static String parseLonggetFormattedAmount(double d) {
  return String.valueOf(Math.round(d * 100));
}
哪些产出:

3358600
5860852
5860851


听起来不错。但它也应该四舍五入到小数点后两位
format.setMaximumFractionDigits(2);
private static String parseLonggetFormattedAmount(double d) {
  return String.valueOf(Math.round(d * 100));
}