■No24437 (よねKEN さん) に返信
> 実験環境は何でしょうか?
> ・.NET FrameworkのバージョンやSP
> ・使用言語とコンパイラのバージョン
ああっと!
失礼しました。
.Net2.0 SP1(2.0.50727.1434)で、
Visual Studio 2005(8.0.50727.867)のVBとC#で試しました。
> 実際に実験に使用したコードもそのまま検証できるものがあるとよいですね。
そのままなんですが、こんな感じです。
'丸めが不思議
Debug.WriteLine((0.5R).ToString("0")) '-> "1"
Debug.WriteLine((0.4R).ToString("0")) '-> "0"
Debug.WriteLine(Convert.ToInt32(0.4R).ToString()) '-> "0"
Debug.WriteLine(Convert.ToInt32(0.5R).ToString()) '-> "0"
Debug.WriteLine(Integer.Parse((0.5R).ToString("0"))) '-> "1"
'指数部の値が変
Debug.WriteLine((1).ToString("E+00")) '-> "E+00"
Debug.WriteLine((10).ToString("E+00")) '-> "E+00"
Debug.WriteLine((100).ToString("E+00")) '-> "E+00"
Debug.WriteLine((1000).ToString("E+00")) '-> "E+00"
Debug.WriteLine((5).ToString("E+00")) '-> "E+02"
Debug.WriteLine((50).ToString("E+00")) '-> "E+03"
Debug.WriteLine((500).ToString("E+00")) '-> "E+04"
Debug.WriteLine((5000).ToString("E+00")) '-> "E+05"
Debug.WriteLine((1000).ToString("000E+00")) '-> "100E+01"
Debug.WriteLine((1000).ToString("00E+00")) '-> "10E+02"
Debug.WriteLine((1000).ToString("0E+00")) '-> "1E+03"
Debug.WriteLine((1000).ToString("E+00")) '-> "E+04"
'指数部の桁数が変
Debug.WriteLine((10).ToString("0E+0000000000")) '-> "1E+0000000001"
Debug.WriteLine((10).ToString("0E+00000000000")) '-> "1E+0000000001"
Debug.WriteLine((10).ToString("0E+000000000000000000000")) '-> "1E+0000000001"
|