将字符串数字格式化为双变量,小数点后有两个数字

Posted

技术标签:

【中文标题】将字符串数字格式化为双变量,小数点后有两个数字【英文标题】:Formatting string number into double variable with two number after decimal point 【发布时间】:2015-09-09 14:25:05 【问题描述】:

我从服务器获取一个字符串值,格式如下:14.5000 我需要从中创建一个双变量,小数点后有两个数字:14.50。我尝试了以下方法:

     DecimalFormat df = new DecimalFormat("#,00");
     Double priceD = Double.parseDouble((produitParam.item(paramNb).getTextContent()));
     String dx = df.format(priceD);
     produit.setPrixTtc(Double.valueOf(dx));

我得到了 14.5。如果我使用 DecimalFormat("#.00"),它会给我 15...

有人可以帮我吗?

【问题讨论】:

试试这个模式的十进制格式 - "###.##" 你确定你得到 15... 用于 DecimalFormat("#.00")?我尝试在我的机器上运行,结果是 14.50。 【参考方案1】:

如果你想要精确到小数点后 2 点的字符串,你应该使用

DecimalFormat df = new DecimalFormat("#.00");

你用过“#,00”

','用于指定分组分隔符。

有关更多信息,请参阅 DecimalFormat 的 Java Doc: http://docs.oracle.com/javase/7/docs/api/java/text/DecimalFormat.html

【讨论】:

【参考方案2】:

你应该看看这个链接。你的问题有很多答案。

我想。最好的答案是DecimalFormat df = new DecimalFormat("#0.00"); 在链接中为您提供

[how to convert double to 2 number after the dot?

【讨论】:

我刚刚发现是函数 Double.parseDouble((produitParam.item(paramNb).getTextContent())); 删除了所有的零。 ..他们是一种将字符串直接转换为小数点后2位数字的方法吗? DecimalFormat df = new DecimalFormat("#0.00");字符串 a = "14.5800";双倍价格D = Double.parseDouble(a);字符串 dx = df.format(priceD); System.out.println(Double.valueOf(dx));如果我在我的机器上运行这段代码。它工作正常。这个函数没有删除所有的零。 不可能。 Double.parseDouble 方法以删除所有零而闻名。 (coderanch.com/t/385764/java/java/…)。我决定改用 BigDecimal

以上是关于将字符串数字格式化为双变量,小数点后有两个数字的主要内容,如果未能解决你的问题,请参考以下文章

使用自定义组和小数分隔符将数字格式化为字符串而不更改精度

ActionScript 3 将数字格式化为字符串 - 使用小数和千位分隔符

将数字格式化为字符串-带小数和千位分隔符

将 BigDecimal 格式化为最多 2 个十进制数字的字符串,在小数部分删除 0

当使用print语句输出时,Python将所有浮 点数字格式化为小数点后两位。对吗?

无法将给定对象格式化为数字组合框