我正在努力理解爲什麼c#中的計算在控制檯窗口中顯示與調試結果相比的不同結果。浮點計算顯示輸出不同於調試結果
下面的代碼顯示0.1647513控制檯0.1647513和調試0.164751321
var v = (float) (0.172731235 + -0.200918653*0.04 + 0.03552264*0.04*0.04);
Console.WriteLine(v);
Console.ReadKey();
誰能解釋這個請
感謝
我正在努力理解爲什麼c#中的計算在控制檯窗口中顯示與調試結果相比的不同結果。浮點計算顯示輸出不同於調試結果
下面的代碼顯示0.1647513控制檯0.1647513和調試0.164751321
var v = (float) (0.172731235 + -0.200918653*0.04 + 0.03552264*0.04*0.04);
Console.WriteLine(v);
Console.ReadKey();
誰能解釋這個請
感謝
我想答案就在這裏:C# float.ToString Rounding Values
基本上,浮動默認持有7位數字(你在輸出中看到) - 但它也可以容納9(你是什麼當你破壞執行並且看一看時)。
嘗試Console.WriteLine(v.ToString("G9");
,看看它打印你給不顯示任何* *在控制檯的同一
謝謝你的答案simonalexander2005,儘管我仍然不明白顯示結果的好處與實際值不同。 –
好代碼。目前還不清楚「調試」中的含義。 –
此鏈接可以幫助:http://stackoverflow.com/questions/1421520/formatting-doubles-for-output-in-c-sharp –
對不起,我更新了代碼。我的意思是調試時斷點代碼並評估變量「v」 –