2017-04-12 30 views
0

floatを文字列に変換します。代わりに、

を「正確に一つの小数で文字列にフロートを変換する方法」この質問は何度も頼まれていて、いつもの答えはMyFloat.ToString("0.0")または類似のものです。しかし、私はこれに直面しています問題は

float f = 1; 
string s = f.ToString("0.0"); 
MessageBox.Show(s); 

出力1,0しかし、私は必要1.0であるということです。もちろん、手作業でコンマをドットで置き換えることもできますが、これを行うには適切な方法ではないと確信しています。 私はインターネット上で解決策を見つけることができませんでした。なぜなら、これはすでに出力されているからだということです。1.0 どうしてですか?

+0

と[この(http://stackoverflow.com/questions/9160059/set-up-dot-instead-of-comma-数値での数値)と[this](http://stackoverflow.com/questions/3870154/c-sharp-decimal-separator)... – Pikoh

答えて

1

例えば使用にInvariantCulture

string s = f.ToString("0.0", CultureInfo.InvariantCulture); 
4

あなたはToStringInvariantCultureを使用することができます。

string s = f.ToString("0.0", CultureInfo.InvariantCulture); 

小数点の区切りは文化に依存するが、InvariantCultureはあなたが望むものである.を使用しています。

0

一般解である:現在の培養においてNumberDecimalSeparatorを変更する:

System.Globalization.CultureInfo customCulture = (System.Globalization.CultureInfo)System.Threading.Thread.CurrentThread.CurrentCulture.Clone(); 
customCulture.NumberFormat.NumberDecimalSeparator = "."; 
System.Threading.Thread.CurrentThread.CurrentCulture = customCulture; 
float value1 = 3.55f; 
String message = String.Format("Value is {0}", value1); 
Console.Write(message); //--> "Value is 3.55" 
関連する問題