Resharper警告我在执行int.ToString()时需要指定一个字符串文化
例如:
int Value = Id.ToString(); // Where Id is an int
这只是resharper是迂腐,还是有理由我需要提供一个文化设置来将int转换为字符串?
如果有理由这样做 - 当我的网站在全球使用时,最好使用什么?它应该只反映服务器设置,以便安全地完成内部转换吗?
答案 0 :(得分:13)
因为,例如,英国文化使用'。'作为小数点,法国文化使用','与千分之几相反。指定文化会消除这种歧义,以便代码在为不同语言配置的Windows操作系统上执行相同的操作,尤其是在将已解析的值提交到持久存储时。
答案 1 :(得分:5)
原因是数字的字符串表示形式因国家/地区而异。
有些人使用'。'作为千分隔符,有些使用',有些只是根本不使用任何符号。
没有参数的ToString重载使用当前文化,因此您的输出将根据计算机的设置而有所不同。
那就是说,我的经验法则是:
希望有所帮助