2013-03-13 100 views
0

我有這個問題,因爲previous one。在Visual Studio 2010,Eclipse CDT和gdb中,我的值爲25.3999996185302734375,顯示爲25.399999618530273(沒有最後4位數字)(只是「在gdb中打印25.3999996185302734375」,它將顯示25.399999618530273)。檢查浮點值的精度

現在,在gdb(因此Eclipse CDT的),我可以發出

printf "%.20f\n", var 

以多位數來查看值。

如何在Visual Studio中執行相同的操作 - 即如何更改檢查的浮點值的精度?

我也很好奇,如果有更改Visual Studio和Eclipse/gdb中默認精度的方法,因爲手動打印值不是那麼方便。

+0

如果你真的依賴於這種精度,我會擔心的。 – cppguy 2013-03-13 18:32:17

+0

我想知道15位以後的數字應該足夠用於任何人。 – queen3 2013-03-13 18:35:11

+0

由於更多數字無關緊要,因此顯示會被剪切。存儲在25.3999996185302730與25.3999996185302739的「double」中的值是相同的。見http://babbage.cs.qc.cuny.edu/IEEE-754/並玩一下。 – 2013-03-13 19:56:30

回答

0

至於獲取更多的數字,你的運氣不好。你不會從Visual Studio中獲得超過17位的數字(還有很多其他的編程環境)。使用gcc或基於它的任何東西,您可以獲得儘可能多的數字。

有關詳細信息,請查看我的文章Print Precision of Dyadic Fractions Varies by Language