2015-11-19 63 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,尽管我仍然不明白显示结果的好处与实际值不同。 –