当前位置:网站首页>关于二进制无法精确表示小数
关于二进制无法精确表示小数
2022-07-07 03:23:00 【水晶心泉】
在之前做过的一个项目中遇到了小数计算不精确的问题,如下图所示
我重现了一下,大致是1.05+1+1.05// 3.0999999999999996
这种的,于是看了下二进制是如何表示小数的。
简单点讲的话,就是可以类比十进制的浮点数来理解二进制的浮点数
十进制 | 1 | 2 | 3 | . | 5 | 8 | 9 |
理解方式 | 1*102 | 2*101 | 3*100 | . | 5*(1/101) | 8*(1/102) | 9*(1/10%3) |
二进制 | 1 | 1 | 1 | . | 1 | 0 | 1 |
理解方式 | 1*22 | 1*21 | 1*20 | . | 1*(1/21) | 1*(1/22) | 1*(1/23) |
因此二进制只能精确表示0.5(1/2)
、0.25(1/4)
、0.125(1/8)
、0.0625(1/16)
、…这种的小数,当然了像1.0
、2.0
、3.0
这种的小数部分全为0
的也是可以精确表示的,其他的小数均无法精确表示,所以运算结果也就可能会出现长尾,之所以有一部分不会出现长尾,参考了其他资料后可以发现是语言本身做了部分优化,过分接近的数字会被语言直接优化成看似精确的值。
十进制小数 | 二进制 |
---|---|
0.1 | 0.0001100110011001100110011001100110011001100110011001101 |
0.2 | 0.001100110011001100110011001100110011001100110011001101 |
0.3 | 0.010011001100110011001100110011001100110011001100110011 |
0.4 | 0.01100110011001100110011001100110011001100110011001101 |
0.5 | 0.1 |
0.6 | 0.10011001100110011001100110011001100110011001100110011 |
0.7 | 0.1011001100110011001100110011001100110011001100110011 |
0.8 | 0.1100110011001100110011001100110011001100110011001101 |
0.9 | 0.11100110011001100110011001100110011001100110011001101 |
0.10 | 0.0001100110011001100110011001100110011001100110011001101 |
0.11 | 0.00011100001010001111010111000010100011110101110000101001 |
0.12 | 0.00011110101110000101000111101011100001010001111010111 |
0.13 | 0.00100001010001111010111000010100011110101110000101001 |
0.14 | 0.00100011110101110000101000111101011100001010001111011 |
0.15 | 0.0010011001100110011001100110011001100110011001100110011 |
0.16 | 0.0010100011110101110000101000111101011100001010001111011 |
0.17 | 0.0010101110000101000111101011100001010001111010111000011 |
0.18 | 0.001011100001010001111010111000010100011110101110000101 |
0.19 | 0.001100001010001111010111000010100011110101110000101001 |
0.20 | 0.001100110011001100110011001100110011001100110011001101 |
0.21 | 0.0011010111000010100011110101110000101000111101011100001 |
0.22 | 0.0011100001010001111010111000010100011110101110000101001 |
0.23 | 0.0011101011100001010001111010111000010100011110101110001 |
0.24 | 0.0011110101110000101000111101011100001010001111010111 |
0.25 | 0.01 |
0.26 | 0.0100001010001111010111000010100011110101110000101001 |
0.27 | 0.010001010001111010111000010100011110101110000101001 |
0.28 | 0.0100011110101110000101000111101011100001010001111011 |
0.29 | 0.010010100011110101110000101000111101011100001010001111 |
0.30 | 0.010011001100110011001100110011001100110011001100110011 |
0.31 | 0.010011110101110000101000111101011100001010001111010111 |
0.32 | 0.010100011110101110000101000111101011100001010001111011 |
0.33 | 0.010101000111101011100001010001111010111000010100011111 |
0.34 | 0.010101110000101000111101011100001010001111010111000011 |
0.35 | 0.01011001100110011001100110011001100110011001100110011 |
0.36 | 0.01011100001010001111010111000010100011110101110000101 |
0.37 | 0.01011110101110000101000111101011100001010001111010111 |
0.38 | 0.01100001010001111010111000010100011110101110000101001 |
0.39 | 0.01100011110101110000101000111101011100001010001111011 |
0.40 | 0.01100110011001100110011001100110011001100110011001101 |
0.41 | 0.011010001111010111000010100011110101110000101000111101 |
0.42 | 0.011010111000010100011110101110000101000111101011100001 |
0.43 | 0.011011100001010001111010111000010100011110101110000101 |
0.44 | 0.011100001010001111010111000010100011110101110000101001 |
0.45 | 0.011100110011001100110011001100110011001100110011001101 |
0.46 | 0.011101011100001010001111010111000010100011110101110001 |
0.47 | 0.0111100001010001111010111000010100011110101110000101 |
0.48 | 0.011110101110000101000111101011100001010001111010111 |
0.49 | 0.0111110101110000101000111101011100001010001111010111 |
0.50 | 0.1 |
0.51 | 0.1000001010001111010111000010100011110101110000101001 |
0.52 | 0.100001010001111010111000010100011110101110000101001 |
0.53 | 0.1000011110101110000101000111101011100001010001111011 |
0.54 | 0.10001010001111010111000010100011110101110000101001 |
0.55 | 0.1000110011001100110011001100110011001100110011001101 |
0.56 | 0.100011110101110000101000111101011100001010001111011 |
0.57 | 0.10010001111010111000010100011110101110000101000111101 |
0.58 | 0.10010100011110101110000101000111101011100001010001111 |
0.59 | 0.10010111000010100011110101110000101000111101011100001 |
0.60 | 0.10011001100110011001100110011001100110011001100110011 |
0.61 | 0.10011100001010001111010111000010100011110101110000101 |
0.62 | 0.10011110101110000101000111101011100001010001111010111 |
0.63 | 0.10100001010001111010111000010100011110101110000101001 |
0.64 | 0.10100011110101110000101000111101011100001010001111011 |
0.65 | 0.10100110011001100110011001100110011001100110011001101 |
0.66 | 0.10101000111101011100001010001111010111000010100011111 |
0.67 | 0.10101011100001010001111010111000010100011110101110001 |
0.68 | 0.10101110000101000111101011100001010001111010111000011 |
0.69 | 0.101100001010001111010111000010100011110101110000101 |
0.70 | 0.1011001100110011001100110011001100110011001100110011 |
0.71 | 0.10110101110000101000111101011100001010001111010111 |
0.72 | 0.1011100001010001111010111000010100011110101110000101 |
0.73 | 0.101110101110000101000111101011100001010001111010111 |
0.74 | 0.1011110101110000101000111101011100001010001111010111 |
0.75 | 0.11 |
0.76 | 0.1100001010001111010111000010100011110101110000101001 |
0.77 | 0.110001010001111010111000010100011110101110000101001 |
0.78 | 0.1100011110101110000101000111101011100001010001111011 |
0.79 | 0.11001010001111010111000010100011110101110000101001 |
0.80 | 0.1100110011001100110011001100110011001100110011001101 |
0.81 | 0.110011110101110000101000111101011100001010001111011 |
0.82 | 0.11010001111010111000010100011110101110000101000111101 |
0.83 | 0.11010100011110101110000101000111101011100001010001111 |
0.84 | 0.11010111000010100011110101110000101000111101011100001 |
0.85 | 0.11011001100110011001100110011001100110011001100110011 |
0.86 | 0.11011100001010001111010111000010100011110101110000101 |
0.87 | 0.11011110101110000101000111101011100001010001111010111 |
0.88 | 0.11100001010001111010111000010100011110101110000101001 |
0.89 | 0.11100011110101110000101000111101011100001010001111011 |
0.90 | 0.11100110011001100110011001100110011001100110011001101 |
0.91 | 0.11101000111101011100001010001111010111000010100011111 |
0.92 | 0.11101011100001010001111010111000010100011110101110001 |
0.93 | 0.11101110000101000111101011100001010001111010111000011 |
0.94 | 0.111100001010001111010111000010100011110101110000101 |
0.95 | 0.1111001100110011001100110011001100110011001100110011 |
0.96 | 0.11110101110000101000111101011100001010001111010111 |
0.97 | 0.1111100001010001111010111000010100011110101110000101 |
0.98 | 0.111110101110000101000111101011100001010001111010111 |
0.99 | 0.1111110101110000101000111101011100001010001111010111 |
边栏推荐
- Master-slave replication principle of MySQL
- . Net 5 fluentftp connection FTP failure problem: this operation is only allowed using a successfully authenticated context
- Jetpack compose is much more than a UI framework~
- Four goals for the construction of intelligent safety risk management and control platform for hazardous chemical enterprises in Chemical Industry Park
- Mysql---- import and export & View & Index & execution plan
- Sword finger offer high quality code
- [Luogu p1971] rabbit and egg game (bipartite game)
- How can clothing stores make profits?
- Please answer the questions about database data transfer
- sql中对集合进行非空校验
猜你喜欢
sql中对集合进行非空校验
$refs:组件中获取元素对象或者子组件实例:
jdbc数据库连接池使用问题
Answer to the first stage of the assignment of "information security management and evaluation" of the higher vocational group of the 2018 Jiangsu Vocational College skills competition
Bus消息总线
2018年江苏省职业院校技能大赛高职组“信息安全管理与评估”赛项任务书
异步组件和Suspense(真实开发中)
How does an enterprise manage data? Share the experience summary of four aspects of data governance
子组件传递给父组件
父组件传递给子组件:Props
随机推荐
AddressSanitizer 技术初体验
readonly 只读
JDBC database connection pool usage problem
2018年江苏省职业院校技能大赛高职组“信息安全管理与评估”赛项任务书
Multithreading and high concurrency (9) -- other synchronization components of AQS (semaphore, reentrantreadwritelock, exchanger)
Can 7-day zero foundation prove HCIA? Huawei certification system learning path sharing
Anr principle and Practice
.net 5 FluentFTP连接FTP失败问题:This operation is only allowed using a successfully authenticated context
一文带你了解静态路由的特点、目的及配置基本功能示例
How to do sports training in venues?
Bus消息总线
Config分布式配置中心
MySQL的主从复制原理
Sword finger offer high quality code
Basic introduction of JWT
MATLAB小技巧(29)多项式拟合 plotfit
场馆怎么做体育培训?
How Oracle backs up indexes
Special behavior of main function in import statement
父组件传递给子组件:Props