"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桁を保つ double タイプを使う必要があります。フォーマットに関しては、 フォーマットが2倍になる についての投稿を見てください。そして、あなたは心配する必要があります C#の小数点について 。
あなたはdouble.Parse("41.00027357629127");
することができます