今天一朋友Q我,他的系统有一个地方有问题.之前在1.1版本下是完好的,后来我给他升级到2.0之后发生了错误.看了下代码,问题出现在对结算金额的处理上,因为金额中的头部包含了"¥"字符,并且其中还有","分隔符.而在代码中,它直接用float.Parse方法调用当然出现了问题.其实 float.Parse 方法有四种重载,其中有一个重载的签名为Double.Parse (String, NumberStyles) 第一个参数为要转换为数字类型的字符串,第二个参数是一个枚举,表示了字符串的格式,其中包括了是否允许头部有货币符号,是否允许以逗号分隔等
最后的代码修改后如下:
float commision = float.Parse(e.Item.Cells[4].Text,System.Globalization.NumberStyles.AllowCurrencySymbol | System.Globalization.NumberStyles.AllowDecimalPoint | System.Globalization.NumberStyles.AllowThousands);
//允许货币符号,允许小数点,允许逗号分隔
.toString("C")
本文解决了一个关于浮点数解析的问题,在系统升级后出现了解析包含特殊字符的金额字符串失败的情况。通过使用正确的Parse方法重载并指定NumberStyles选项,成功地解决了此问题。
1074

被折叠的 条评论
为什么被折叠?



