打印带有 2 位小数的双精度值和 .不是,[重复]

Posted

技术标签:

【中文标题】打印带有 2 位小数的双精度值和 .不是,[重复]【英文标题】:Printing a double value with 2 decimals with a . not a , [duplicate] 【发布时间】:2018-07-02 06:23:24 【问题描述】:

我正在开发的应用程序有一个小问题。我正在使用一些 double 值,我想将它们放在一些 TextViews 中,但是当放置数字时,而不是“。”它出现 ”,”。我想要一个点,这样我就可以使用substring 导入值。

DecimalFormat precision = new DecimalFormat("0.00");
final TextView totalPrice = (TextView) getView().findViewById(R.id.actualPrice);
double price = 200.12357123;
totalPrice.setText("$" + precision.format(price));

TextView 内部会出现 200,12 而我想出现 200.12,所以我可以稍后将文本转换为双精度值。

【问题讨论】:

但是您的代码在我的项目中运行,只是删除了 getView()。 @DileepPatel DecimalFormat 创建的结果取决于用户特定的Locale 好的,感谢您的澄清。 Locale 与dot as decimal separator 设置为一 【参考方案1】:

试试这个

Locale currentLocale = Locale.getDefault();
String formatString = "#,###,###,###.##";
DecimalFormatSymbols otherSymbols = new DecimalFormatSymbols(currentLocale);
otherSymbols.setDecimalSeparator(',');
otherSymbols.setGroupingSeparator('.');
DecimalFormat df = new DecimalFormat(formatString, otherSymbols);

double price = 200.12357123;

Log.i("TAG", "" + "$ " + df.format(price));

输出

【讨论】:

相同的结果 mate :( 这是操作已经做的。请仔细阅读问题。 @Andy95 请检查我的答案。 @devpuh 感谢您的评论。【参考方案2】:

使用下面的代码,它会给出你想要的完全相同的答案:

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

【讨论】:

【参考方案3】:

您可以更改“。”用 ',' ,当你想转换成双精度。

【讨论】:

我到底是怎么做到的? 看看这个答案***.com/questions/6952363/…

以上是关于打印带有 2 位小数的双精度值和 .不是,[重复]的主要内容,如果未能解决你的问题,请参考以下文章

格式,Java 中的双精度和整数的 2 位小数和 0

打印精度高达小数点后 4 位的双精度数据类型 - Armadillo

单精度、双精度各有几位小数?

1.1输出浮点数

如何在php中将最小值和最大值设置为小数点后2位[重复]

打印没有科学格式的双精度并四舍五入到最接近的整数[关闭]