shrine 发表于 2017-8-13 10:08:37

请问双双精度变量赋值时后缀加什么?

本帖最后由 shrine 于 2017-8-13 10:30 编辑

双精度变量赋值时,后缀加d
real(8)::a=16.d0

请问双双精度赋值时后缀加什么
real(16)::b

不加后缀的话会出现如下错误

      program main
      implicit none
      real(16)::a
      real(8)::b
      real(8)::c
      
      a=1.2d0
      b=1.2d0
      c=1.2
      
      write(*,*)a
      write(*,*)b
      write(*,*)c
      end


chiangtp 发表于 2017-8-13 15:22:12

0. 請參考:
1. 請研讀網站教學視頻
2. 如果意猶未盡:

shrine 发表于 2017-8-13 15:41:51

本帖最后由 shrine 于 2017-8-13 15:43 编辑

刚刚在intel的论坛得到了答案,应该是
real(16)::a
a=1.2_16

好像看不清,就是数值后面加个下划线
谢谢楼上

chiangtp 发表于 2017-8-13 15:49:49

"下划线"後的number名為kind number, "literal"形式的kind number是compiler dependent, 不建議使用

shrine 发表于 2017-8-13 16:00:21

本帖最后由 shrine 于 2017-8-13 16:02 编辑

chiangtp 发表于 2017-8-13 15:49
"下划线"後的number名為kind number, "literal"形式的kind number是compiler dependent, 不建議使用 ...
推荐使用先定义个常量selected_real_kind,然后下划线后面跟一个常量?

vvt 发表于 2017-8-13 16:24:57

是的,就像这样
Real , parameter :: QP = Selected_real_kind( 18 )
Real(Kind=QP) :: a = 3.14_QP

shrine 发表于 2017-8-13 19:05:19

vvt 发表于 2017-8-13 16:24
是的,就像这样
Real , parameter :: QP = Selected_real_kind( 18 )
Real(Kind=QP) :: a = 3.14_QP ...

谢谢!!!!!

shrine 发表于 2017-8-14 07:04:51

本帖最后由 shrine 于 2017-8-14 08:05 编辑

vvt 发表于 2017-8-13 16:24
是的,就像这样
Real , parameter :: QP = Selected_real_kind( 18 )
Real(Kind=QP) :: a = 3.14_QP ...
Integer , parameter :: QP = Selected_real_kind( 18 )
Real(Kind=QP) :: a = 3.14_QP ...

笔误
相应的,dsqrt应该写成什么?

vvt 发表于 2017-8-14 08:23:28

的确是笔误,应该是
Integer , parameter :: QP = Selected_real_kind( 18 )
Real(Kind=QP) :: a = 3.14_QP

不写 dsqrt ,直接写 sqrt 即可,它适用于任何kind值。
详解 http://whyd.w.fcode.cn

shrine 发表于 2017-10-25 11:06:17

vvt 发表于 2017-8-14 08:23
的确是笔误,应该是
Integer , parameter :: QP = Selected_real_kind( 18 )
Real(Kind=QP) :: a = 3.14_QP ...

整数转化成QP精度的实数用什么符号?

比如i是整数
dble(i)是双精度

把i转成QP精度呢?
页: [1] 2
查看完整版本: 请问双双精度变量赋值时后缀加什么?