[英]Double to string with culture and only one decimal place
将双精度型转换为字符串并四舍五入到小数点后一位时,我需要保持文化。
用文化将双精度转换为字符串:
((12275454.8).ToString("N", new CultureInfo("sl-SI")));
给出输出:
12.275.454,80
将double转换为只有一个小数的字符串:
string.Format("{0:F1}",12275454.8)
给出输出:
12275454.8
第二个输出没有区域性,第一个输出没有四舍五入到小数点后一位。 如何结合两种方法?
仅在第一个示例中使用第二个示例的格式字符串,即:
((12275454.8).ToString("N1", new CultureInfo("sl-SI")));
编辑:根据要求将格式从F1更改为N1。 两者之间的区别在于N额外使用了数千个分隔符,而F则没有。 有关详细信息,请参见https://msdn.microsoft.com/zh-CN/library/dwhawy9k(v=vs.110).aspx
您可以将"sl-SI"
区域性设置为默认区域性:
using System.Threading;
...
Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo("sl-SI");
string test = string.Format("{0:F1}",12275454.8);
如果只希望"sl-SI"
区域性代码块,请添加try..finally
:
var savedCulture = Thread.CurrentThread.CurrentCulture;
try {
Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo("sl-SI");
// Let's work with "sl-SI" for a while
string test = string.Format("{0:F1}",12275454.8);
...
}
finally {
Thread.CurrentThread.CurrentCulture = savedCulture;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.