繁体   English   中英

双精度字符串,仅带小数点后一位

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM