如何将货币字符串格式化为整数?

10

我有一个带货币格式的字符串,像$35.00这样,需要将其转换为35。

是否可以使用String.Format{ }来检索?


之前有类似的问题被问过。https://dev59.com/QnE85IYBdhLWcg3wejjn - Patko
3
可能是将任何货币字符串转换为双精度数的重复问题。 - Noon Silk
1个回答

20
int value = int.Parse("$35.00", NumberStyles.Currency);

应该可以给你需要的答案。

然而,像$35.50这样的值转换为整数可能不会返回你想要的结果,因为整数不支持部分(小数)数字。你没有在那种情况下指定期望的结果。

[编辑:将double更改为decimal,与货币一起使用更安全]

如果你想在这种情况下获取35.5的值,你可能需要使用decimal类型。

decimal value = decimal.Parse("$35.00", NumberStyles.Currency);

请注意,在处理货币和浮点数精度时必须非常小心。


2
你应该在所有货币/金钱相关的操作中使用“decimal”类型。 - Noon Silk
啊,非常好的一点。我个人从不编写与货币有关的代码,经常忘记有小数类型存在。 - Khalos
1
如果这个解决方案对您有用,请考虑将其标记为答案。这样,其他遇到相同问题的人就会知道哪个方法有效。很高兴你解决了它。 - Khalos

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接