如何格式化带有点的双精度数?

发布于 2024-10-20 01:01:30 字数 169 浏览 6 评论 0原文

如何将带有 String.format 的 Double 格式化为在整数和小数部分之间有一个点的 String?

String s = String.format("%.2f", price);

上面的格式只包含一个逗号:“,”。

How do I format a Double with String.format to String with a dot between the integer and decimal part?

String s = String.format("%.2f", price);

The above formats only with a comma: ",".

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

独夜无伴 2024-10-27 01:01:30

String.format(String, Object ...) 使用 JVM 的默认区域设置。您可以使用 String.format(Locale, String, Object ...)java.util.Formatter 直接。

String s = String.format(Locale.US, "%.2f", price);

String s = new Formatter(Locale.US).format("%.2f", price);

// do this at application startup, e.g. in your main() method
Locale.setDefault(Locale.US);

// now you can use String.format(..) as you did before
String s = String.format("%.2f", price);

// set locale using system properties at JVM startup
java -Duser.language=en -Duser.region=US ...

String.format(String, Object ...) is using your JVM's default locale. You can use whatever locale using String.format(Locale, String, Object ...) or java.util.Formatter directly.

String s = String.format(Locale.US, "%.2f", price);

or

String s = new Formatter(Locale.US).format("%.2f", price);

or

// do this at application startup, e.g. in your main() method
Locale.setDefault(Locale.US);

// now you can use String.format(..) as you did before
String s = String.format("%.2f", price);

or

// set locale using system properties at JVM startup
java -Duser.language=en -Duser.region=US ...
把时间冻结 2024-10-27 01:01:30

基于此 post 你可以这样做,它在 Android 7.0 上适用于我

import java.text.DecimalFormat
import java.text.DecimalFormatSymbols

DecimalFormat df = new DecimalFormat("#,##0.00");
df.setDecimalFormatSymbols(new DecimalFormatSymbols(Locale.ITALY));
System.out.println(df.format(yourNumber)); //will output 123.456,78

这种方式你可以根据你的区域设置添加点和逗号

感谢 Kevin van Mierlo 评论编辑和修复了答案

Based on this post you can do it like this and it works for me on Android 7.0

import java.text.DecimalFormat
import java.text.DecimalFormatSymbols

DecimalFormat df = new DecimalFormat("#,##0.00");
df.setDecimalFormatSymbols(new DecimalFormatSymbols(Locale.ITALY));
System.out.println(df.format(yourNumber)); //will output 123.456,78

This way you have dot and comma based on your Locale

Answer edited and fixed thanks to Kevin van Mierlo comment

荒路情人 2024-10-27 01:01:30

如果它的工作方式与 PHP 和 C# 中的相同,您可能需要以某种方式设置您的区域设置。可能会在 Java 国际化常见问题解答中找到更多相关信息

If it works the same as in PHP and C#, you might need to set your locale somehow. Might find something more about that in the Java Internationalization FAQ.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文