2016-09-26 22 views
0

私はマイクロコントローラからPCにデータを取得するプログラムを書いています。データは浮動小数点形式です。 Iは、Convert.ToSingle(string)を用いてフロートに文字列を変換しようとしたが、変換結果が間違っている:C# - 間違った文字列から単一の変換

  1. 「0.11」は、時には12
  2. 「0.10」が10等
に変換され、11に変換されます。

ご覧のとおり、これは予期せぬ0を0にしています。これはどうしてできますか?

+1

地域の設定をチェックしてみます。私は変換が動作しないシステムは、異なる小数点記号(おそらくカンマ)を設定していると仮定します。 –

+0

重複している質問を確認してください。 – mybirthname

答えて

3

あなたの問題は文化特有です。いくつかの文化では数字は,によって分離され、いくつかの中で彼らは

String a = "0,11"; 
Convert.ToSingle(a) 

が0,11のあなたの望ましい結果をもたらすべきであるあなたのケースでは.

で区切られて浮かんでいます。

文化を指定するか、不変にして両方の可能性を受け入れる必要があります。

は、以下のことを試してみてください。

Convert.ToSingle(a, CultureInfo.InvariantCulture) 
関連する問題