fortran 的一个小问题

本人新学fortran,看数据类型时遇到一个问题,下面程序中a为浮点型,b为整形,为什么输出结果是a=0.0000E+00b=0a因该是0.25啊。不知道那里错了,还请大... 本人新学fortran,看数据类型时遇到一个问题,下面程序中a为浮点型,b为整形,为什么输出结果是 a=0.0000E+00 b=0
a因该是0.25啊。不知道那里错了,还请大家帮忙

program main
implicit none real a integer b a=1/4 b=1/4 write(*,*)a write(*,*)b stopend program main
展开
 我来答
充满你的笑容
2012-06-28
知道答主
回答量:13
采纳率:0%
帮助的人:22万
展开全部
你这是所有编程语言中常见的整数除法的错误,计算机程序中(c,java等语言都如此)对于除法的计算是当分子和分母都为整数时,结果也一定是整数,你的程序中a=1/4这一句计算机先计算右边,因为1和4都是整数,故计算出来的结果也一定是整数,小数部分直接丢掉,原本为0.25的丢掉小数后便为0,也就是右边计算完后结果为0。计算机先完成右边计算再赋值(运算符的优先级决定),a=1/4相当于a=0,结果便可想而知了吧。
为了避免这类错误,劝你最好只要有除法,便在分子或分母的常数中加上小数点,如 a=1/4改为a=1.0/4,这样就没问题了。
本人最近写了个程序,里有个错误就是这样的,找了好久才找出来,写程序养成好的习惯最重要。。。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式