[问题] 有关double precision运算式

楼主: ttjhninn (Cream)   2015-09-15 02:03:31
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这类的数字,有人可以提供一下经验吗?
作者: gilocustom   2015-09-15 02:19:00
输出r的时候小数点以下多显示个几位数,你会有惊喜。先别管这些了,你~有听过浮点数吗?
楼主: ttjhninn (Cream)   2015-09-15 02:30:00
怎么多输出后面几个数字?另外这不是double precision嘛?不是代表只提供16的位子存放数字,怎么还会有后面几位?谢谢G大,我大概知道是什么原因了
作者: blc (Anemos)   2015-09-15 12:00:00
FYI,gfortran是-118.9999999~14位

Links booklink

Contact Us: admin [ a t ] ucptt.com