Java Float值使用两个小数位格式化

时间:2015-01-30 12:27:14

标签: java

以下是我添加两个值的代码

float ptoTotalAmount = 0;
Map<String, String> renewalDetailview = new LinkedHashMap<String, String>();
String Fee = driver
                .findElement(
                        By.xpath("//div[@data-bind='html: CURRenewalFees']"))
                .getText().substring(4).replace(",", "");       
        ptoTotalAmount += Float.valueOf((ptoFee));
        String surcharge = driver
                .findElement(By.xpath("//div[@data-bind='html: Surcharges']"))
                .getText().substring(4).replace(",", "");       
        ptoTotalAmount += Float.valueOf((surcharge));

        renewalDetailview.put("totalfee", Float.toString(ptoTotalAmount));

例如:

费用 - 31500.00,附加费 - 1500.00

费用+附加费= 33000.00

因此,totalfee的预期结果 - 33000.00,但我得到33000.0

因此,我将格式化应用于带有2位小数的浮点值,但我没有得到预期的结果。

DecimalFormat decimalFormat = new DecimalFormat();
        decimalFormat.setMinimumFractionDigits(2);

        renewalDetailview.put("totalfee", String.valueOf(df.format(ptoTotalAmount)));

我得到330,00这样的东西,请帮我格式化2位小数。

2 个答案:

答案 0 :(得分:2)

看起来你正在尝试模拟货币。 如果是,您应该查看this post

上的答案

答案 1 :(得分:1)

尝试类似:

float value = 33000.00f;//float??
String formattedString = String.format( "%.2f", value);
System.out.println(formattedString);
Output:
33000.00