我有一个输入文件进入我的应用程序,每行都有一些产品价格值。
但是,当价格高于999.99时,价值包含在适当的位置。
1,000.00
5,432.89
等。
1)是否有关于将逗号置于货币值的设定规则?在什么基础上决定逗号的位置?
2)是否有一个库方法将这些字符串值解析为float / double?
感谢您阅读!!
答案 0 :(得分:5)
您可以使用DecimalFormat
来解析和格式化十进制数字。
有数千名分隔符的逗号。这是一个故意解析为BigDecimal
而不是float
或double
的简单示例 - 二进制浮点数不适合货币值。
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);
}
}
现在只使用千位分隔符和小数分隔符之类的默认语言环境 - 您可能想要指定特定的语言环境,如果您知道将要用于解析的文件的内容。