2015-11-19 89 views
0

我正在努力理解爲什麼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(); 

誰能解釋這個請

感謝

+6

好代碼。目前還不清楚「調試」中的含義。 –

+0

此鏈接可以幫助:http://stackoverflow.com/questions/1421520/formatting-doubles-for-output-in-c-sharp –

+0

對不起,我更新了代碼。我的意思是調試時斷點代碼並評估變量「v」 –

回答

2

我想答案就在這裏:C# float.ToString Rounding Values

基本上,浮動默認持有7位數字(你在輸出中看到) - 但它也可以容納9(你是什麼當你破壞執行並且看一看時)。

嘗試Console.WriteLine(v.ToString("G9");,看看它打印你給不顯示任何* *在控制檯的同一

+0

謝謝你的答案simonalexander2005,儘管我仍然不明白顯示結果的好處與實際值不同。 –