LabVIEW为什么浮点数会丢失精度

简介: LabVIEW为什么浮点数会丢失精度

LabVIEW为什么浮点数会丢失精度


在编程环境中使用浮点数或双精度浮点数的时候发觉数字的值会有微小的变化。比如输入2.4的时候显示的是2.3999999999999999。为什么浮点数会出现这种不准确的情况呢?


解答: 造成浮点数不精确的主要原因有两个:


十进制数的二进制表示可能不够精确


浮点数或是双精度浮点数无法精确表示的情况并不少见。浮点数值没办法用十进制来精确表示的原因要归咎于CPU表示浮点数的方法。这样的话就可能会牺牲一些精度,有些浮点数运算也会引入误差。以上面提到的情况为例,2.4的二进制表示并非就是精确的2.4。反而最为接近的二进制表示是 2.3999999999999999。原因在于浮点数由两部分组成:指数和尾数。浮点数的值实际上是由一个特定的数学公式计算得到的。


如果想得到这个公式或是尾数的更多资料,可以参考“What is Mantissa?”文章。


所遇到的精度损失会在任何操作系统和编程环境中遇到。


注意:可以使用BinaryCoded Decimal (BCD)库来保持精度。BCD数字编码方法会把每一个十进制数字位单独编码。如果想要知道BCD的更多消息,可以参考文章“What is Binary Coded Decimal(BCD)?”


想要了解这种精度损失的更多信息可以参考IEEE/ANSI Standard 754-1985,这篇文章包括Standardfor Binary Floating Point Arithmetic。


类型失配


可能混合了浮点数和双精度浮点数类型。请确定在进行数学运算的时候所有的数据类型全部相同。


注意:float类型的变量只有7位的精度,而double类型的变量有15位的精度。

cdfa3df4f276073b6555c976612af6b6.png

编辑

添加图片注释,不超过 140 字(可选)

LabVIEW、LabVIEW开发、LabVIEW编程、LabVIEW程序

上文中提到的例子和资料,均在word中的附件里,可点击下载。进一步了解,可联系们。

相关文章
|
Docker 容器 数据格式
Docker 修改镜像源地址
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_34173549/article/details/80417198 我的Docker 版本为 1.
42276 0
|
12月前
|
机器学习/深度学习 人工智能 数据挖掘
GPU加速:解锁高性能计算的未来
【10月更文挑战第20天】GPU加速:解锁高性能计算的未来
754 1
|
12月前
|
机器学习/深度学习 并行计算 数据挖掘
请详细介绍GPU加速
【10月更文挑战第20天】请详细介绍GPU加速
|
12月前
|
数据可视化 JavaScript 数据挖掘
2024年最值得关注的5款数据可视化工具
在信息爆炸的时代,数据可视化工具帮助我们从海量数据中提取有价值的信息,并以直观、易于理解的方式展现。本文介绍五款主流工具:板栗看板、Power BI、Datawrapper、QlikView 和 Highcharts,从产品特色、使用场景等角度分析,帮助用户根据自身需求选择合适的工具。
1374 0
2024年最值得关注的5款数据可视化工具
LabVIEW UI设计的几个技巧
LabVIEW UI设计的几个技巧
647 0
|
消息中间件 缓存 监控
中间件锁定和并发问题
中间件锁定是一种机制,用于在并发访问时保护共享资源或数据。通过锁定,可以确保在给定时间内只有一个用户或线程能够访问或修改特定资源。
133 4
|
存储 运维 前端开发
淘宝 NPM 镜像站切换新域名啦
用CNPM/淘宝源的开发者们请注意,淘宝NPM 镜像站喊你切换新域名啦。新的Web 站点:https://npmmirror.com,Registry Endpoint:https://registry.npmmirror.com。随着新的域名已经正式启用,老 http://npm.taobao.org 和 http://registry.npm.taobao.org 域名将于 2022 年 05 月 31 日零时起停止服务。(望周知,求转发)
15122 1
|
Kubernetes API Python
|
开发工具 git
【Git】报错解决cannot open .git/FETCH_HEAD: Permission denied
【Git】报错解决cannot open .git/FETCH_HEAD: Permission denied
1645 0