2015-11-19 3 views
0

Im пытается понять, почему расчет в 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

Извините, ive обновил код. То, что я подразумеваю под отладкой, - это когда я прерываю код и оцениваю переменную «v» –

ответ

2

Я думаю, что ответ здесь: C# float.ToString Rounding Values

В принципе, поплавок по умолчанию содержит 7 цифр (что вы видите на выходе), но оно также может содержать 9 (что вы когда вы нарушаете исполнение и смотрите).

Попробуйте Console.WriteLine(v.ToString("G9"); и посмотреть, если он печатает тот же

+0

Спасибо за ответ simonalexander2005, хотя я до сих пор не понимаю, почему отображение результата отличается от фактического значения. –

Смежные вопросы