从字符串中创建具有两位小数的 Double [重复]

Posted

技术标签:

【中文标题】从字符串中创建具有两位小数的 Double [重复]【英文标题】:Create a Double with two decimals from a String [duplicate] 【发布时间】:2014-12-25 04:59:59 【问题描述】:

我需要从一个字符串中创建一个带有两位小数的 Double - 换句话说,我需要将“100”变成 100.00。 令人惊讶的是:

double d = Double.valueOf("500");
DecimalFormat df = new DecimalFormat("#.00");
System.out.print(df.format(d));

打印出来:

500,00

我需要“500.00”。我该如何解决? 谢谢

【问题讨论】:

这取决于你的 JVM 语言环境。 研究使用 printf 格式化输出 导入 java.text.DecimalFormat;导入 java.text.NumberFormat;导入 java.util.Locale;公共类 Main public static void main(String[] args) NumberFormat nf = NumberFormat.getNumberInstance(Locale.ENGLISH);十进制格式 df = (十进制格式)nf; df.applyPattern("#.00");双 d = Double.valueOf("500"); System.out.print(df.format(d)); 【参考方案1】:

您可以通过设置区域设置或使用 DecimalFormatSymbols 来更改分隔符。

如果您希望分组分隔符是一个点,您可以使用欧洲语言环境:

NumberFormat nf = NumberFormat.getNumberInstance(Locale.GERMAN);
DecimalFormat df = (DecimalFormat)nf;

或者,您可以使用 DecimalFormatSymbols 类来更改出现在由 format 方法生成的格式化数字中的符号。这些符号包括小数分隔符、分组分隔符、减号和百分号等:

DecimalFormatSymbols otherSymbols = new DecimalFormatSymbols(currentLocale);
otherSymbols.setDecimalSeparator(',');
otherSymbols.setGroupingSeparator('.'); 
DecimalFormat df = new DecimalFormat(formatString, otherSymbols);

此外,您可能会发现这很有用:http://tutorials.jenkov.com/java-internationalization/decimalformat.html 以非常简单和优美的方式解释了与您的问题相关的几乎所有内容。

【讨论】:

谢谢,我已经在建议的副本中找到了它,但是您的回答是正确的。 是的,我提供了它以供您快速参考以防您错过,但我建议您查看教程链接。对我来说看起来不错。美好的一天。

以上是关于从字符串中创建具有两位小数的 Double [重复]的主要内容,如果未能解决你的问题,请参考以下文章

C#中怎么对double型取两位小数。

java海中信真实面试_手写map键值对写入值和取值HashMap字符串转double格式化double保留两位小数字符串转成日期格式css内边距外边距垂直对齐垮单元格

java中double保留两位小数

double数据控制保留小数的几种方法

使用从 int 到字符串 double 的字符串格式并保持小数 C# [重复]

java,中双精度double控制保留两位小数,js控制两位小数