如何将String设置为float [duplicate]

问题描述 投票:-1回答:1

这个问题在这里已有答案:

我正在尝试获取一个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” - >不希望:(

感谢您提供任何帮助。

java string parsing type-conversion
1个回答
3
投票

您可以将最终的print语句更改为:

System.out.printf("%.2f", finalPrice);
© www.soinside.com 2019 - 2024. All rights reserved.