我正在调试C ++应用程序,当我在GDB中显示双精度浮点数时,得到的结果如下:.035449094393
如何显示更多的小数位?理想情况下,我将能够指定精度并得到如下结果:.0354490943927692
基本上,我正在尝试找出两个变量之间存在很小差异的原因。如果我将printf与%1.20f
这样的格式说明符一起使用,则可以看到变量的差异,但不使用GDB。
答案 0 :(得分:4)
默认情况下,GDB的p/f <variable>
的精度有限。
您可以使用printf
来显示更多的小数位:
(gdb) printf "%1.20f\n", <variable>
但是,很可能在这一点上您会遇到数据类型的局限性(可能会有舍入错误和与期望值的其他小偏差)。
答案 1 :(得分:1)
您可以在call printf("%.10f\n", d)
中进行gdb
,它将以所需格式在stdout
中进行打印。