プロが教えるわが家の防犯対策術!

double d;
var str = d.ToString();

としたとき、小数点以下4桁では

d = 0.0003 ⇒ str = "0.0003"

のようにきちんと文字列に変換されますが、小数点以下5桁の場合

d = 0.00003 ⇒ str = "3E-05"

となってしまいます。小数点以下5桁はダメなのかと思ったのですが

d = 1.00003 ⇒ str = "1.00003"

は大丈夫です。これはなぜなのでしょうか?

A 回答 (1件)

ToStringで明示的に書式を指定すれば、小数点以下もきちんと表示できます。


https://www.midnightunity.net/csharp-tostring-fo …
double d;
d = 0.0003;
String str;
str = d.ToString("F5");
Console.WriteLine(str);
d = 1.00003;
str = d.ToString("F5");
Console.WriteLine(str);
d = 0.00032109;
str = d.ToString("F8");
Console.WriteLine(str);

実行結果
0.00030
1.00003
0.00032109
    • good
    • 0
この回答へのお礼

すばやい回答まことにありがとうございました。助かりました!

お礼日時:2022/04/18 16:14

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!