"41.00027357629127"のような文字列を変換しています。文字列をCで浮動小数点数に変換する
Convert.ToSingle("41.00027357629127");
又は
float.Parse("41.00027357629127");
これらの方法は、4.10002732E + 15を返します。
フロートに変換するときは、「41.00027357629127」が必要です。この文字列は...同じでなければなりません
"41.00027357629127"のような文字列を変換しています。文字列をCで浮動小数点数に変換する
Convert.ToSingle("41.00027357629127");
又は
float.Parse("41.00027357629127");
これらの方法は、4.10002732E + 15を返します。
フロートに変換するときは、「41.00027357629127」が必要です。この文字列は...同じでなければなりません
スレッドのロケールは、 "。"の代わりに小数点が "、"に設定されています。フロートは精度の桁数を保持することができないことが
float.Parse("41.00027357629127", CultureInfo.InvariantCulture.NumberFormat);
注、:
はこれを使用してみてください。これを行うには、doubleまたはDecimalを使用する必要があります。
'CultureInfo'にアクセスするために' using System.Globalization; 'という名前空間を追加することを忘れないでください – Mobiletainment
floatの精度は7桁です。全体をたくさん保つには、doubleタイプを15〜16桁の数字で使用する必要があります。フォーマットについては、formatting doublesについての投稿を見てください。そして、あなたはabout decimal separators in C#を心配する必要があります。
使用Convert.ToDouble("41.00027357629127");
これはデータ型をfloatからdoubleに変更しませんか? OPは浮動小数点が必要でした。 –
はまず、それはあなたがデバッガで見float
数のちょうどプレゼンテーションです。 実際のの値はほぼ正確です(可能な限り)。
注:浮動小数点数と文字列を扱うときは、と常にCultureInfoの情報を使用してください。
float.Parse("41.00027357629127",
System.Globalization.CultureInfo.InvariantCulture);
これは単なる例です。あなたのケースに適した文化を選んでください。
より正確な値を得るために、floatの代わりにdoubleを使用して解析することができます。
"float asd = (float) Convert.ToDouble("41.00027357629127");
を使用できます。
これがなぜ正しい答え。 –
どのように変換されているのか分かりますか?つまり、番号を表示しています。 – Mark
ToSingleはなぜですか?そしてToFloatではない? – R2D2