后面很长的尾巴是怎么来的?
>>> 9.9 * 0.4
3.96oooooooooooo4
>>> 9.9 * 0.6
5.94
>>> 9.9 * 0.8
7.92oooooooooooo1
1
ynyounuo Sep 22, 2019 好消息,21 世纪美国新出的产品谷歌可以免费给你这类问题的答案了!
|
2
by73 Sep 22, 2019
引子 * 乎:请重修 IEEE 754
|
3
ZRS Sep 23, 2019
浮点数本来就有误差....
|
4
gclove Sep 23, 2019 好消息,21 世纪美国新出的产品谷歌可以免费给你这类问题的答案了!
把数字转换成二进制你就知道了,你应该使用二进制计算,而不是 10 进制 |
5
ipwx Sep 23, 2019
月经贴,总是以各种方式见到这个问题。
IEEE 754 |
6
qiayue PRO 跟具体的语言无关,任何语言都会出现浮点数计算误差
关键字:浮点数二进制 |
7
Yourshell Sep 23, 2019 via iPhone
几乎所有 cs 入门教程都有提到这个问题,虽然我忘了🐱
|
8
Raymon111111 Sep 23, 2019
十进制的有限小数表达成二进制可能是无限小数
|
9
caomu Sep 23, 2019 via Android
好消息!好消息!本站成功和谷歌达成合作关系,以后大家有什么想问的问题可以直接谷歌搜索,不需要在发帖问了,可以省下大家很多时间!非常方便!
|
10
eric6356 Sep 23, 2019 via iPhone |
11
cherbim Sep 23, 2019 via iPhone
所有的语言入门都会提到这个问题,详情 ieee 754 标准
|
12
334862132 Sep 23, 2019
跟 python 语言美关系,这个涉及到计算机底层原理,所有语言都一个样 python 的话用 decimal 包之后变成 str 试试吧
|
13
VjZ6b8ld9OB5PLB0 Sep 23, 2019
感谢楼主,重新学习了一下·
https://juejin.im/entry/575543857db2a2006993114e |
14
Pythondr Sep 23, 2019
这种基础的问题为什么不自己去看去学习呢?
https://juejin.im/post/5d6e74c35188254628237d5d |
15
mcluyu Sep 23, 2019
二进制无法精确表示十进制的浮点数
|
16
Vegetable Sep 23, 2019
题注这样也好,让很多人都学习\复习了一遍这个知识
|
17
ps1aniuge Sep 23, 2019
PS A:\pscode> 9.9 * 0.4
3.96 PS A:\pscode> powershell 没这问题。或者说默认设置好一些。 在 powershell 中,有自动的数字类型判断,当然你也可以手动。 默认 1/3*3 = 1 也可以手动设定[decimal]1/3*3 = 0.9999999999999 |
19
mangoDB Sep 23, 2019
你需要了解一下,在计算机中,是如何通过二进制来表示`浮点数`的。
|
20
gIrl1990 Sep 23, 2019
我来说一个题外的:
ECMAScript uses a double-precision 64-bit binary format IEEE 754-2008 value for number `Number.MIN_SAFE_INTEGER` `Number.MAX_SAFE_INTEGER` |
21
u823tg Sep 23, 2019 via Android
你得去看看基础了。这个是很基础的问题。
|
22
littlewing Sep 23, 2019
要你们多学学计算机基础知识,你们不听
|
23
ps1aniuge Sep 23, 2019
在 powershell 中,有自动的数字类型判断,当然你也可以手动。
================================= [decimal]1/3*3 = 0.9999999999999 ================================= PS A:\pscode> [decimal]9.9 * 0.4 - 3.96 0.00 PS A:\pscode> ================================= |
24
banxi1988 Sep 23, 2019
|