将文件中的字符串值解析为float,其中string包含逗号

时间:2011-11-30 06:10:08

标签: java string parsing floating-point double

我有一个输入文件进入我的应用程序,每行都有一些产品价格值。

但是,当价格高于999.99时,价值包含在适当的位置。

1,000.00
5,432.89

等。

1)是否有关于将逗号置于货币值的设定规则?在什么基础上决定逗号的位置?

2)是否有一个库方法将这些字符串值解析为float / double?

感谢您阅读!!

1 个答案:

答案 0 :(得分:5)

您可以使用DecimalFormat来解析和格式化十进制数字。

有数千名分隔符的逗号。这是一个故意解析为BigDecimal而不是floatdouble的简单示例 - 二进制浮点数不适合货币值。

import java.math.*;
import java.text.*;

public class Test {
    public static void main(String[] args) throws Exception {
        DecimalFormat format = new DecimalFormat();
        format.setParseBigDecimal(true);
        BigDecimal value = (BigDecimal) format.parse("1,234.56");
        System.out.println(value);
    }
}

现在只使用千位分隔符和小数分隔符之类的默认语言环境 - 您可能想要指定特定的语言环境,如果您知道将要用于解析的文件的内容。