主题:fortran变量赋值问题
ghxys
[专家分:0] 发布于 2011-09-27 13:38:00
才开始学习fortran,所以在编程时碰到这样一个问题
1 do 10 k=-3.5,3.5
2 x=k*0.75
3 y=0.0
但是断点发现k值在2里面被当成整数了,即x值为-3*0.75,还有就是类似情况,当赋给一变量为小数时,带入下一个式子计算时出现同样问题,求解这是为什么?
还有就是对于此类情况如何处理,谢谢了
回复列表 (共6个回复)
沙发
cgl_lgs [专家分:21040] 发布于 2011-09-27 14:21:00
循环不要用实型数。
板凳
yeg001 [专家分:14390] 发布于 2011-09-27 15:35:00
初学不要学被抛弃的标准. 找本适合的书很重要.
3 楼
ghxys [专家分:0] 发布于 2011-09-27 18:22:00
即使不在循环里,就单独赋值然后再带入另一个表达式里也会出现类似问题,这是为什么??????
4 楼
yeg001 [专家分:14390] 发布于 2011-09-27 19:40:00
real :: x,y
integer :: k
do k=0,7
x=(-3.5+real(k))*0.75
y=0.0
enddo
5 楼
yeg001 [专家分:14390] 发布于 2011-09-27 19:45:00
复制黏贴竟然乱码...
要看k是什么类型, 如果是整形, 你把浮点数赋值给他, 他最终还是会变成整形的.(这是基础知识哦...)
6 楼
chenjingbin [专家分:60] 发布于 2011-11-01 14:22:00
fortran里是有IN准则的,就是说如果你没有事先定义变量类型,那么一I-N开头的变量是整形,其余是非整形,你这种情况是没有事先定义k的类型吧?
我来回复