Skip to content

为什么 0.4+0.2 =0.6000000000000001 #8

@CarisL

Description

@CarisL

在写业务,或者有些时候时候写demo的时候,应该或多或少会遇到浮点数计算精度丢失的问题。

会有精度丢失呢?

记得在上计算机课程的时候,老师有讲过浮点数在电脑的存储..
让大妹子把它翻出来给大家看看先..噗嗤...

关于浮点数

浮点数是计算机表示有理数的一种方式,或者说规范。浮点数和定点数相对应。

关于定点数

这两个词中的‘点’也就是常说的小数点。定点数就是计算机在表示数字时,小数点的位置是固定的。

计算机是把数据转换为二进制才进行计算的,所以让我们看看0.2的二进制是多少..
大妹子百度给你们看0.001100110011001100110011001100110011001100110011001101
帅不帅气!这跟 1/3是不是很像?因为不能整除....一直都是0.33333333
这就解释了为什么精度会丢失的问题了~~

补充一下~
很多很多做支付的,做交易的都会把人民币的单位换算成分在进行计算,应该也是因为这个原因吧。

如果写的不对!各位大佬请指出来~~~

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions