C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


■89841 / )  Re[1]: (string)とToString()の違い
□投稿者/ 774RR (655回)-(2019/01/08(Tue) 08:29:44)
「なぜ」と問われると「仕様だから」ってことになるわけですが
https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/types/casting-and-type-conversions
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/keywords/explicit-numeric-conversions-table
double を文字列にする明示的変換すなわちキャストは後者の一覧の中にない、よって許されていない。
なので ToString() が必要ってことでしょう。

浮動小数点数の文字列化にはいろんな方式があるので変換方法=フォーマットを指定する必要があり
単にキャストだとフォーマット指定ができないのでダメ、って事情もありそう。

double x = 0.1; // は正確に 0.1 にならない
Console.WriteLine(x.ToString());
Console.WriteLine(x.ToString("E17"));
Console.WriteLine(x.ToString("F17"));
Console.WriteLine(x.ToString("G17"));
だと
0.1
1.00000000000000010E-001
0.10000000000000000
0.10000000000000001
のように変換方式によって文字列化の結果が違います、ってことで。

返信 編集キー/


管理者用

- Child Tree -