我的应用程序会接收到一个输入文件,每行中都有一些产品价格值。
然而,当价格高于999.99时,这些值会在适当的位置包含“,”。
1,000.00
5,432.89
1)在货币数值中放置逗号的规则有吗?逗号的位置是根据什么确定的?
2)是否有库方法可以将这样的字符串值解析为float/double?
谢谢阅读!
我的应用程序会接收到一个输入文件,每行中都有一些产品价格值。
然而,当价格高于999.99时,这些值会在适当的位置包含“,”。
1,000.00
5,432.89
1)在货币数值中放置逗号的规则有吗?逗号的位置是根据什么确定的?
2)是否有库方法可以将这样的字符串值解析为float/double?
谢谢阅读!
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);
}
}
现在只使用默认语言环境来处理千位分隔符和小数点分隔符等内容,如果您知道要解析的文件将使用哪种语言环境,您可能需要指定特定的语言环境。