基于区域性的十进制字符串格式
本文关键字:字符串 格式 十进制 区域性 | 更新日期: 2023-09-27 18:29:38
我有一个十进制值,它存储在我的数据库(SQL Server 2008)中,精度为13,小数位数为10。
示例:
10.6157894734
68.0750000000
96.8723684210
基本上,这些数字代表100分中的"分数"。
现在,我想根据不同的文化,以不同的方式显示/表示这个值。
例如,在AU中,我想显示100中的值,四舍五入到小数点后2位。
所以在上面的例子中:
10.62
68.08
96.87
但在美国,我想显示10中的值,四舍五入到小数点后1位。所以在上面的例子中:
1.1
6.8
9.7
这可以用资源文件来完成吗?例如,做一些类似的事情:
return score.ToString(Resources.Global.ScoreFormat);
在美国,它可以被存储为"#.##",但在澳大利亚,它可以存储为"#.[strong>?
我很确定它不能,因为我不仅要四舍五入,还要用数学变换?(例如AU的值/10)但我想问这个问题。
我试图避免一个丑陋的if语句,它检查当前的区域性并手动进行数学/舍入。
您需要在资源中放入一个修饰符和一个格式字符串,以便执行类似的操作
return (score * Resources.Global.ScoreModifier).ToString(Resources.Global.ScoreFormat);
接受Phil的回答,但这是任何关心的人的实际修改器/格式:
代码:
var formattedScore = (score / Convert.ToInt32(Global.ScoreModifier)).ToString(Global.ScoreFormat))
全局.resx
ScoreFormat n1
ScoreModifier 10
Global.en au.resx
ScoreFormat n2
ScoreModifier 1
似乎有效。。有人发现问题了吗?