我遇到了定价问题。 我需要将价格输入格式设置为XXXX.YY类型 问题是,输入价格可能是欧洲的形状XXX,YY或XX,XXX.YY,如果谈论大数字。
是否有JS或C#lib可以帮助那里?
感谢
答案 0 :(得分:2)
在处理货币值时,您应该使用Decimal.Parse而不是Double.Parse。 (Decimal类型减少了舍入错误的可能性等。)
从MDSN回答有关不同文化货币格式的问题:
使用。解析参数s 格式化信息 NumberFormatInfo初始化为 当前的制度文化。更多 信息,请参阅CurrentInfo。要解析 使用格式的字符串 其他一些文化的信息,使用 Decimal.Parse(String, IFormatProvider)或 Decimal.Parse(String,NumberStyles, IFormatProvider)方法。
如果您不知道,.NET框架会自动从操作系统的当前区域设置中获取“当前系统文化”。在Windows中,计算机用户可以在“区域设置”中查看/更改此类信息。
答案 1 :(得分:1)
美国/英国格式:
Double.Parse("123,456.78", new CultureInfo("en-US"));
代表德语格式:
Double.Parse("123.456,78", new CultureInfo("de-DE"));
提示:如果您正在从文件/数据库等存储/读取数据,通常建议使用CultureInfo.InvariantCulture
答案 2 :(得分:0)
Double.Parse("123,456.78")
将在C#中工作
http://msdn.microsoft.com/en-us/library/7yd1h1be.aspx
然后将其转换为您想要的格式:
String.Format("£{0:##.##}", number);