今天一朋友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")