将字符串数字格式化为双变量,小数点后有两个数字
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