ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

【IDL】判断双精度变量是否EQ

2022-06-08 17:31:54  阅读:157  来源: 互联网

标签:string EQ 2.38 2.3 IDL print eq 精度


在任何语言中,数据的精度问题都会存在。比如在IDL中,就存在以下现象。

IDL> a = 2.3 + 0.08

IDL> print, a

     2.38000

IDL> print, a eq 2.38

  0

 

IDL> a = 2.38

IDL> b = 2.38D

IDL> print, a eq b

      0

 

查看了一些网上的搜索结果,大多数人的解决方法都是通过判断两者之差是否小于一个极小值,从而判断是否相等。

另附上一个简单解决方法:

其实在IDL里,可以通过把双精度变量转换成字符串类型,然后判断。

;这里的变量均为浮点型

IDL> a = 2.3 + 0.08

IDL> print, a eq 2.38

    0

IDL> print, string(a) eq string(2.38)

  1

 

;对于双精度

IDL> a = 2.3 + 0.08D

IDL> help, a

      A              DOUBLE   =       2.3800000

IDL> print, string(a) eq string(2.38)

      0

IDL> print, string(a) eq string(2.38D)

 1

标签:string,EQ,2.38,2.3,IDL,print,eq,精度
来源: https://www.cnblogs.com/enviidl/p/16356495.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有