【问题标题】:limit the output to two decimal places将输出限制为两位小数
【发布时间】:2014-04-14 17:10:21
【问题描述】:

问题 1:为什么我不能将 x=-0.6 放入我的 do while 循环中?

x=-0.6

do while (x<0.6)
  x = x + 0.1
  write(*,*) x
end do

结果

 -0.40000001    
 -0.30000001      
 -0.20000002      
 -0.10000002          
 -1.49011612E-08  
  9.99999866E-02      
  0.19999999          
  0.29999998         
  0.39999998         
  0.49999997         
  0.59999996

但是我只想要-0.5,-0.4,-0.3,-0.2,-0.1......0.5,请问这个怎么做?通过声明real(kind=2) :: x。但是fortran 90中的命令是什么?

【问题讨论】:

  • 对问题 1 的回答:因为这就是语言的工作方式。我不明白你所说的声明 real(kind=2) :: x 的意思,它有什么关系?

标签: fortran90


【解决方案1】:

你不想改变数据类型,你只想改变输出格式:

write(*, '(f5.2)') x

【讨论】:

  • 5 是字段宽度,2 是小数位数,调整它们以获得所需的输出。
  • 谢谢。是否可以初始化 x = -0.5 ,正好是-0.5?
  • 您在此处遇到了舍入问题。相反,我会循环一个从 -5 到 5 的整数并乘以 0.1。
猜你喜欢
  • 2022-01-11
  • 1970-01-01
  • 2018-11-16
  • 2023-01-08
  • 1970-01-01
  • 1970-01-01
  • 2017-04-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多