石鑫华视觉 发表于 2019-2-23 10:50:55

LabVIEW怎么强制DBL浮点形数字强制小数点位数

本帖最后由 石鑫华视觉 于 2019-5-28 10:56 编辑

LabVIEW怎么强制DBL浮点形数字强制小数点位数LabVIEW编程时,DBL数据类型约15位精度,SGL数据类型约6位精度。在某些情况下,我们可能要对DBL、SGL等类型的浮点数强制多少位小数点。特别是涉及到货币方面的数据时,如含税价格、税额之类的,这些在我们日常应用,通常都只需要2位小数点,即只做到货币的分单位即可。例如开发票时,我们看到的金额、税额、总价,都是只保留2位小数的。而如果不强制小数位,在某些情况下计算时,没有强制小数位的和强制小数位的计算结果是有差异的,这里主要是小数位的四舍五入过程中引起的。那么我们LabVIEW开发时,如何来对浮点数强制小数位呢?不强制数据类型时的计算差异税额下的一栏,是DBL转换为字符串并保留2位小数后的结果,这时其求和后应该是232.67。但是总税额计算的值是232.68。这里就是造成的差异。总税额计算是,用下面的探针中数组值先求各,再转换成字符串保留2位小数后的值,这时其值就是232.68,而数组先强制2位小数点后,求和则应该是232.67。所以这里,为了与显示的字符串数值求和结果一致,我们需要对探针处的DBL数组强制指定2位小数,然后再求和。DBL数组强制小数点位数的一种方法在这里,我们针对的是DBL数组,当然DBL数字、SGL数组、SGL数字也是可以这样操作的,也可以做成多态VI,这里就不演示了。实现方法是数组/数字先乘以10的多少次方,多少次方则代表了小数位数,如2次方,则表示2位小数,则对原始数组乘以100,即10^2。然后再强制转换为整数,这里使用的是I32,也可以使用I64。I16、I8之类的就不建议了,建议至少还是要用I32,当然,如果你明确的知道数值范围只有I16或I8也可以用。在这个转换为整数的过程中,则会将小数点采用四舍五入强制去掉。之后,再除以之前乘以的10的多少次方,就算把值的范围又变回去了。这时得到的数值,就是已经强制保留多少位小数点后的值。
示例下载LabVIEW2017SP1及以后版本:**** Hidden Message *****

hanmeng 发表于 2021-3-22 10:21:43


石鑫华视觉网工业相机、工业镜头、机器视觉光源、光源控制器、图像处理、系统集成服务商

x显示小数位 和设定小数位不是一样的把

THMZ 发表于 2021-9-27 13:32:41

石鑫华视觉网http://shixinhua.com,工业相机、工业镜头、机器视觉光源、光源控制器、图像处理、系统集成服务商

fjczd 发表于 2021-3-19 19:01:58

o0ewsi
石鑫华视觉网 工业相机、工业镜头、机器视觉光源、光源控制器、图像处理、系统集成服务商

凌风 发表于 2021-6-2 17:58:19

如此细心的讲解

123heihei 发表于 2021-6-23 22:52:20

学到了学到了学到了学到了学到了学到了

jordan8850 发表于 2021-11-9 10:04:58

机器视觉商城https://visionbbs.com/,中国真正的机器视觉与图像处理网上商城

Delhi 发表于 2021-12-18 20:19:16


学到了学到了学到了学到了学到了学到了

Delhi 发表于 2022-1-9 16:59:58

学到了学到了学到了学到了学到了学到了

6128263 发表于 2022-3-15 12:41:43

LabVIEW怎么强制DBL浮点形数字强制小数点位数
页: [1] 2
查看完整版本: LabVIEW怎么强制DBL浮点形数字强制小数点位数

LabVIEW HALCON图像处理入门教程(24.09)
石鑫华机器视觉与LabVIEW Vision图像处理PDF+视频教程11种全套
《LabVIEW Vision函数实例详解2020-2024》教程-NI Vision所有函数使用方法介绍,基于NI VISION2020,兼容VDM21/22/23/24