作者ttjhninn (Cream)
看板Fortran
标题[问题] 有关double precision运算式
时间Tue Sep 15 02:03:31 2015
hello各位 不好意思又要打扰大家一下了
上次所发问的问题小弟仍然无法完全了解当中出错的原因
索性直接举出一段code希望大家可以给些意见
implicit none
double precision x,y,r,s
x=28.4d+00
y=16.5d+00
r=(y-x)*10.0d+00
s=(y+x)*10.0d+00
print*,r,int(r),s,int(s)
end
print出来的数字为:
-119.000000000000 -118 449.00000000000000 449
我已经很明确给予xy值了,照理说应该不会有所谓的x-y=-118.999999999这类的数字,有人可以提供一下经验吗?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 115.43.222.152
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Fortran/M.1442253814.A.604.html
1F:→ gilocustom: 输出r的时候小数点以下多显示个几位数,你会有惊喜。 09/15 02:19
2F:→ gilocustom: 先别管这些了,你~有听过浮点数吗? 09/15 02:23
3F:→ ttjhninn: 怎麽多输出後面几个数字?另外这不是double precision嘛? 09/15 02:30
4F:→ ttjhninn: 不是代表只提供16的位子存放数字,怎麽还会有後面几位? 09/15 02:31
5F:→ ttjhninn: 谢谢G大,我大概知道是什麽原因了 09/15 04:16
6F:→ blc: FYI,gfortran是-118.9999999~14位 09/15 12:00