0
私はマイクロコントローラからPCにデータを取得するプログラムを書いています。データは浮動小数点形式です。 Iは、Convert.ToSingle(string)
を用いてフロートに文字列を変換しようとしたが、変換結果が間違っている:C# - 間違った文字列から単一の変換
- 「0.11」は、時には12
- 「0.10」が10等
ご覧のとおり、これは予期せぬ0を0にしています。これはどうしてできますか?
私はマイクロコントローラからPCにデータを取得するプログラムを書いています。データは浮動小数点形式です。 Iは、Convert.ToSingle(string)
を用いてフロートに文字列を変換しようとしたが、変換結果が間違っている:C# - 間違った文字列から単一の変換
ご覧のとおり、これは予期せぬ0を0にしています。これはどうしてできますか?
あなたの問題は文化特有です。いくつかの文化では数字は,
によって分離され、いくつかの中で彼らは
String a = "0,11";
Convert.ToSingle(a)
が0,11のあなたの望ましい結果をもたらすべきであるあなたのケースでは.
で区切られて浮かんでいます。
文化を指定するか、不変にして両方の可能性を受け入れる必要があります。
は、以下のことを試してみてください。
Convert.ToSingle(a, CultureInfo.InvariantCulture)
地域の設定をチェックしてみます。私は変換が動作しないシステムは、異なる小数点記号(おそらくカンマ)を設定していると仮定します。 –
重複している質問を確認してください。 – mybirthname