Java 用冒号分隔小数点

Java 用冒号分隔小数点,java,Java,我想将十进制设置为以冒号分隔的字符串(:)。例如296.00到296:00 DecimalFormat df = new DecimalFormat("#.##"); amount = Double.valueOf(df.format(amount)); 只要更换就行了 DecimalFormat df = new DecimalFormat("#.##"); amount = Double.valueOf(df.format(amount)); String newF

我想将十进制设置为以冒号分隔的字符串(
)。例如
296.00
296:00

DecimalFormat df = new DecimalFormat("#.##");
            amount = Double.valueOf(df.format(amount));

只要更换就行了

DecimalFormat df = new DecimalFormat("#.##");
amount = Double.valueOf(df.format(amount));
String newFormat = String.valueOf(amount).replace('.',':');

只要更换就行了

DecimalFormat df = new DecimalFormat("#.##");
amount = Double.valueOf(df.format(amount));
String newFormat = String.valueOf(amount).replace('.',':');

旧帖子,但万一有人后来偶然发现这一点,我找到了一个更好的解决办法

考虑到用户的语言环境,您可以使用DecimalFormatSymbols替换格式化程序的默认小数分隔符

DecimalFormatSymbols symbols = new DecimalFormatSymbols(Locale.getDefault());
symbols.setDecimalSeparator(':');
DecimalFormat formatter = new DecimalFormat("00.00", symbols);
System.out.println(formatter.format(45.45889));

旧帖子,但万一有人后来偶然发现这一点,我找到了一个更好的解决办法

考虑到用户的语言环境,您可以使用DecimalFormatSymbols替换格式化程序的默认小数分隔符

DecimalFormatSymbols symbols = new DecimalFormatSymbols(Locale.getDefault());
symbols.setDecimalSeparator(':');
DecimalFormat formatter = new DecimalFormat("00.00", symbols);
System.out.println(formatter.format(45.45889));

这很危险:如果在德国、法国或荷兰运行此代码,输出将是
296,00
,而不是
296:00
。您需要指定区域设置(
Locale.US
)以使其可靠工作。这是一个很好的捕获,但内部化不是Vivek关心的问题。但是,@ Vivek Shankar -请参考这一点——如果你考虑LaaLe.@ SrikanthA,你不能假设DeimalFalm输出一个点作为小数分隔符,除非你明确地指定了区域设置。你不仅仅是在为Vivek写这个答案(这不是StackOverflow的重点,而且你不知道Vivek在哪个国家工作/生活),你在为全世界写你的答案。您的代码不适用于生活在世界上大多数使用逗号作为小数分隔符的国家的人。你应该使用
new DecimalFormat(“#.###,”,new DecimalFormatSymbols(Locale.US))
来更正你的代码。这很危险:如果你在德国、法国或荷兰运行此代码,输出将是
296,00
,而不是
296:00
。您需要指定区域设置(
Locale.US
)以使其可靠工作。这是一个很好的捕获,但内部化不是Vivek关心的问题。但是,@ Vivek Shankar -请参考这一点——如果你考虑LaaLe.@ SrikanthA,你不能假设DeimalFalm输出一个点作为小数分隔符,除非你明确地指定了区域设置。你不仅仅是在为Vivek写这个答案(这不是StackOverflow的重点,而且你不知道Vivek在哪个国家工作/生活),你在为全世界写你的答案。您的代码不适用于生活在世界上大多数使用逗号作为小数分隔符的国家的人。您应该使用
new DecimalFormat(“#.###”,new DecimalFormatSymbols(Locale.US))
来更正代码。