将Double转换为String:特定于文化

假设我的方法有一个Double类型的参数。 但有时候我传递的是一个类似于7的int,而不是像7.0这样的双倍,所以如果我使用ToString方法然后7将是“7”,但我希望它是“7.0”,现在我还需要考虑文化,因为有时可能法语使用“,”作为十进制,所以它应该是“7,0”……我怎么能把这个转换成字符串?

你在找这个吗?

double x = 7.0; String Display = x.ToString("0.0", CultureInfo.CreateSpecificCulture("de-DE")); 

它已经对文化敏感,它关注Thread.CurrentCulture属性。 当法国用户运行您的程序时,这将不是英语。 除非您知道默认文化不正确,否则不要做任何特别的事情。

除了您问题的所有正确答案之外,我还想提示您使用CultureInfo.InvariantCulture来处理您要将数据存储到文件,数据库等中的任何场景。

如果我早些知道这件事,它会给我带来很多时间和痛苦。

您还可以查看此链接以获取使用string.Format示例

http://www.csharp-examples.net/string-format-double/