石鑫华视觉论坛

 找回密码
 注册会员
查看: 11900|回复: 14

[原创] LabVIEW怎么强制DBL浮点形数字强制小数点位数

[复制链接]
  • TA的每日心情
    慵懒
    昨天 10:09
  • 签到天数: 3411 天

    连续签到: 13 天

    [LV.Master]2000FPS

    发表于 2019-2-23 10:50:55 | 显示全部楼层 |阅读模式 来自:广东省东莞市 电信

    注册登陆后可查看附件和大图,以及购买相关内容

    您需要 登录 才可以下载或查看,没有账号?注册会员

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

    LabVIEW怎么强制DBL浮点形数字强制小数点位数
    LabVIEW编程时,DBL数据类型约15位精度,SGL数据类型约6位精度。在某些情况下,我们可能要对DBLSGL等类型的浮点数强制多少位小数点。特别是涉及到货币方面的数据时,如含税价格、税额之类的,这些在我们日常应用,通常都只需要2位小数点,即只做到货币的分单位即可。例如开发票时,我们看到的金额、税额、总价,都是只保留2位小数的。而如果不强制小数位,在某些情况下计算时,没有强制小数位的和强制小数位的计算结果是有差异的,这里主要是小数位的四舍五入过程中引起的。那么我们LabVIEW开发时,如何来对浮点数强制小数位呢?

    不强制数据类型时的计算差异

    不强制数据类型时的计算差异
    不强制数据类型时的计算差异
    税额下的一栏,是DBL转换为字符串并保留2位小数后的结果,这时其求和后应该是232.67。但是总税额计算的值是232.68。这里就是造成的差异。总税额计算是,用下面的探针中数组值先求各,再转换成字符串保留2位小数后的值,这时其值就是232.68,而数组先强制2位小数点后,求和则应该是232.67。所以这里,为了与显示的字符串数值求和结果一致,我们需要对探针处的DBL数组强制指定2位小数,然后再求和。

    DBL数组强制小数点位数的一种方法

    DBL数组强制小数点位数的一种方法
    DBL数组强制小数点位数的一种方法
    在这里,我们针对的是DBL数组,当然DBL数字、SGL数组、SGL数字也是可以这样操作的,也可以做成多态VI,这里就不演示了。实现方法是数组/数字先乘以10的多少次方,多少次方则代表了小数位数,如2次方,则表示2位小数,则对原始数组乘以100,即10^2。然后再强制转换为整数,这里使用的是I32,也可以使用I64I16I8之类的就不建议了,建议至少还是要用I32,当然,如果你明确的知道数值范围只有I16I8也可以用。在这个转换为整数的过程中,则会将小数点采用四舍五入强制去掉。之后,再除以之前乘以的10的多少次方,就算把值的范围又变回去了。这时得到的数值,就是已经强制保留多少位小数点后的值。

    示例下载LabVIEW2017SP1及以后版本:
    游客,如果您要查看本帖隐藏内容请回复

    回复

    使用道具 举报

  • TA的每日心情
    擦汗
    2023-4-5 10:29
  • 签到天数: 4 天

    连续签到: 1 天

    [LV.2]200FPS

    发表于 2021-3-22 10:21:43 | 显示全部楼层 来自:上海市 电信

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

    x显示小数位 和设定小数位不是一样的把
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2024-11-28 19:43
  • 签到天数: 517 天

    连续签到: 4 天

    [LV.9]900FPS

    发表于 2021-9-27 13:32:41 | 显示全部楼层 来自:广东省深圳市福田区 电信
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2021-3-19 19:01:58 | 显示全部楼层 来自:北京市 移动
    o0ewsi
    石鑫华视觉网 工业相机、工业镜头、机器视觉光源、光源控制器、图像处理、系统集成服务商
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2022-6-22 15:44
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]100FPS

    发表于 2021-6-2 17:58:19 | 显示全部楼层 来自:广东省深圳市 电信
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2021-6-23 22:52:20 | 显示全部楼层 来自:中国 科技网
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    28 分钟前
  • 签到天数: 1226 天

    连续签到: 2 天

    [LV.10]1000FPS

    发表于 2021-11-9 10:04:58 | 显示全部楼层 来自:台湾省 中华电信(HiNet)数据中心
    机器视觉商城https://visionbbs.com/,中国真正的机器视觉与图像处理网上商城
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2023-10-14 14:45
  • 签到天数: 21 天

    连续签到: 1 天

    [LV.4]400FPS

    发表于 2021-12-18 20:19:16 | 显示全部楼层 来自:天津市河西区 联通
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2023-10-14 14:45
  • 签到天数: 21 天

    连续签到: 1 天

    [LV.4]400FPS

    发表于 2022-1-9 16:59:58 | 显示全部楼层 来自:天津市 联通
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2022-3-15 10:11
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]100FPS

    发表于 2022-3-15 12:41:43 | 显示全部楼层 来自:江苏省常州市 电信
    LabVIEW怎么强制DBL浮点形数字强制小数点位数
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册会员

    本版积分规则

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

    QQ|石鑫华视觉论坛 |网站地图

    GMT+8, 2024-12-22 16:05

    Powered by Discuz! X3.4

    © 2001-2024 Discuz! Team.

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