「41.00027357629127」のような文字列を変換していて、使用しています。
Convert.ToSingle("41.00027357629127");
また
float.Parse("41.00027357629127");
これらのメソッドは4.10002732E+15を返します。
フロートに変換するときは「41.00027357629127」が欲しいです。この文字列は同じである必要があります...
「41.00027357629127」のような文字列を変換していて、使用しています。
Convert.ToSingle("41.00027357629127");
また
float.Parse("41.00027357629127");
これらのメソッドは4.10002732E+15を返します。
フロートに変換するときは「41.00027357629127」が欲しいです。この文字列は同じである必要があります...
スレッドのロケールは、小数点が「。」ではなく「、」であるロケールに設定されます。
これを使用してみてください:
float.Parse("41.00027357629127", CultureInfo.InvariantCulture.NumberFormat);
ただし、floatはその桁数の精度を保持できないことに注意してください。これを行うには、doubleまたはDecimalを使用する必要があります。
まず、これはデバッガーに表示される数値の表示にすぎません。実際のfloat
値はほぼ正確です(可能な限り)。
注:浮動小数点数と文字列を処理するときは、常に CultureInfo情報を使用してください。
float.Parse("41.00027357629127",
System.Globalization.CultureInfo.InvariantCulture);
これは単なる例です。あなたのケースに適した文化を選択してください。
以下を使用できます。
float asd = (float) Convert.ToDouble("41.00027357629127");
使用するConvert.ToDouble("41.00027357629127");
floatの精度は7桁です。ロット全体を保持したい場合は、15〜16桁を保持するダブルタイプを使用する必要があります。フォーマットについては、doublesのフォーマットに関する投稿をご覧ください。また、C#の小数点について心配する必要があります。
あなたはできるdouble.Parse("41.00027357629127");
より正確な値を取得するには、floatの代わりにdoubleを使用した解析を使用できます。