2010-12-11 70 views
0

我可以在哪裏設置樣式,其中double是由ToString()方法寫入的? 我越來越例如2,2345,而我想有2.2345逗號分隔雙重

感謝AY提示,

再見

回答

2

Double.ToString() method超載,所以你可以用幾個不同的簽名來調用它得到你想要的輸出。

在這種情況下,您的文化設置會影響ToString()函數的輸出。爲了得到結果是你想要的,你應該叫Double.ToString(IFormatProvider),傳遞CultureInfo.InvariantCulture

myDouble.ToString(CultureInfo.InvariantCulture); 

這應該解決您的問題。

爲了將來的參考,請注意另一個通用版本Double.ToString()Double.ToString(String)過載。 String參數是數字格式字符串,既可以是預定義的,也可以是您指定的字符串。例如:

myDouble.ToString("format string here"); 

MSDN對格式字符串一對夫婦的文章:Standard Numeric Format StringsCustom Numeric Format Strings

+0

你將不能夠只用一個格式字符串來改變小數點分隔符 - 你需要強制文化做到這一點。 – rsenna 2010-12-11 15:25:05

2
double a = 2.2345; 
string b = a.ToString(CultureInfo.InvariantCulture); 
2

您需要指定FormatProvider,通常用作CultureInfo。

例如:

string s = d1.ToString(System.Globalization.CultureInfo.InvariantCulture); 
0

如果您想將影響到對你的整個應用程序。這可以在初始化時設置。因此,請注意,這意味着對所有文化進行有效更改。

var culture = new CultureInfo(Thread.CurrentThread.CurrentCulture.Name); 
culture.NumberFormat.NumberDecimalSeparator = "."; 
Thread.CurrentThread.CurrentCulture = culture; 

然後,只需:

string value = (1002.300).ToString();