当前位置:网站首页>About binary cannot express decimals accurately
About binary cannot express decimals accurately
2022-07-07 07:14:00 【Crystal heart spring】
In a previous project, I encountered the problem of inaccurate decimal calculation , As shown in the figure below 
I reproduced it , Is roughly 1.05+1+1.05// 3.0999999999999996 Such , So I looked at how binary represents decimal .
To put it simply , That is, we can understand binary floating-point numbers by analogy with decimal floating-point numbers
| Decimal system | 1 | 2 | 3 | . | 5 | 8 | 9 |
| Way of understanding | 1*102 | 2*101 | 3*100 | . | 5*(1/101) | 8*(1/102) | 9*(1/10%3) |
| Binary system | 1 | 1 | 1 | . | 1 | 0 | 1 |
| Way of understanding | 1*22 | 1*21 | 1*20 | . | 1*(1/21) | 1*(1/22) | 1*(1/23) |
Therefore, binary can only accurately represent 0.5(1/2)、0.25(1/4)、0.125(1/8)、0.0625(1/16)、… This kind of decimal , Of course, like 1.0、2.0、3.0 This kind of decimal part is all 0 Of can also be accurately expressed , Other decimals cannot be expressed accurately , Therefore, the operation result may have a long tail , The reason why some of them will not have long tails , After referring to other materials, we can find that the language itself has been partially optimized , Too close numbers will be directly optimized into seemingly accurate values by language .
| Decimal number | Binary system |
|---|---|
| 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 |
边栏推荐
- PostgreSQL source code (60) transaction system summary
- [noi simulation] regional division (conclusion, structure)
- 非父子组件的通信
- How to do sports training in venues?
- Master-slave replication principle of MySQL
- Non empty verification of collection in SQL
- $refs:组件中获取元素对象或者子组件实例:
- [Luogu p1971] rabbit and egg game (bipartite game)
- AVL树的实现
- Learning records on July 4, 2022
猜你喜欢

After the promotion, sales volume and flow are both. Is it really easy to relax?

Complete process of MySQL SQL

Config distributed configuration center

Use of completable future

Lvs+kept (DR mode) learning notes

Bindingexception exception (error reporting) processing

Jesd204b clock network

IP address

jdbc数据库连接池使用问题

大咖云集|NextArch基金会云开发Meetup来啦
随机推荐
. Net core accesses uncommon static file types (MIME types)
组件的嵌套和拆分
MySQL view bin log and recover data
$parent (get parent component) and $root (get root component)
Communication of components
Config分布式配置中心
Bus消息总线
Mobx knowledge point collection case (quick start)
大咖云集|NextArch基金会云开发Meetup来啦
libcurl返回curlcode说明
Bus message bus
工具类:对象转map 驼峰转下划线 下划线转驼峰
Pass child component to parent component
Unity3d learning notes
Communication between non parent and child components
Lm11 reconstruction of K-line and construction of timing trading strategy
Algorithm --- bit count (kotlin)
Hidden Markov model (HMM) learning notes
弹性布局(一)
.net core 访问不常见的静态文件类型(MIME 类型)