Fortran Coder

楼主: shrine
打印 上一主题 下一主题

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

[复制链接]

83

帖子

35

主题

0

精华

专家

F 币
343 元
贡献
215 点
跳转到指定楼层
楼主
发表于 2017-8-13 10:08:37 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 shrine 于 2017-8-13 10:30 编辑

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

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

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

[Fortran] 纯文本查看 复制代码
      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



分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

83

帖子

35

主题

0

精华

专家

F 币
343 元
贡献
215 点
沙发
 楼主| 发表于 2017-8-13 15:41:51 | 显示全部楼层
本帖最后由 shrine 于 2017-8-13 15:43 编辑

刚刚在intel的论坛得到了答案,应该是
[Fortran] 纯文本查看 复制代码
real(16)::a
a=1.2_16


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

83

帖子

35

主题

0

精华

专家

F 币
343 元
贡献
215 点
板凳
 楼主| 发表于 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,然后下划线后面跟一个常量?

83

帖子

35

主题

0

精华

专家

F 币
343 元
贡献
215 点
地板
 楼主| 发表于 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 ...

谢谢!!!!!

83

帖子

35

主题

0

精华

专家

F 币
343 元
贡献
215 点
5#
 楼主| 发表于 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应该写成什么?

83

帖子

35

主题

0

精华

专家

F 币
343 元
贡献
215 点
6#
 楼主| 发表于 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精度呢?

83

帖子

35

主题

0

精华

专家

F 币
343 元
贡献
215 点
7#
 楼主| 发表于 2017-11-9 13:48:55 | 显示全部楼层
本帖最后由 shrine 于 2017-11-9 14:21 编辑
kyra 发表于 2017-10-25 11:18
dble 这个函数我从来不用。
转换成浮点数(不管精度是多少),都可以用 real 函数。

感谢一直以来的帮助
再请教一个语法问题,行向量和矩阵中的一列相乘难道不是一个数么
为何这段代码说c的形状不对呢
[Fortran] 纯文本查看 复制代码
       
 program main
      implicit none
      integer::a(2,2),b(1,2),c
      a(1,1)=1
      a(2,1)=2
      a(1,2)=5
      a(2,2)=6
      b(1,1)=3
      b(1,2)=4
      c=matmul(b,a(:,1))
      end


83

帖子

35

主题

0

精华

专家

F 币
343 元
贡献
215 点
8#
 楼主| 发表于 2017-11-9 15:35:45 | 显示全部楼层
vvt 发表于 2017-11-9 15:06
向量,矩阵,是数学概念。
编程里只有一维数组,二维数组的概念。

我还是老实点用dot_product吧,谢谢
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-5-5 09:21

Powered by Tencent X3.4

© 2013-2024 Tencent

快速回复 返回顶部 返回列表