这个问题在这里已有答案:
我正在尝试获取一个String,强制它成为一个浮点数,然后将其格式化为“###。##”(我能做到)并最终将其发送到浮点变量(这是我有问题的地方)。
当我在该变量上使用Float.parseFloat()时,我的浮点格式为“###。#”,我需要将float的格式设置为“###。##”,即使原始字符串为“321” ”。
String priceLabel = "321";
float priceLabelConvertedInFloat = Float.parseFloat(priceLabel);
System.out.println(priceLabelConvertedInFloat);
NumberFormat nf = NumberFormat.getNumberInstance(Locale.US);
DecimalFormat df = (DecimalFormat)nf;
df.setMaximumFractionDigits(2);
df.setMinimumFractionDigits(2);
String priceStringWith2Decimals = df.format(priceLabelConvertedInFloat);
System.out.println(priceStringWith2Decimals);
float finalPrice = Float.parseFloat(priceStringWith2Decimals);
System.out.println(finalPrice);
它打印“321.0” - >预期/“321.00” - >预期/“321.0” - >不希望:(
感谢您提供任何帮助。
您可以将最终的print语句更改为:
System.out.printf("%.2f", finalPrice);