float浮点数会不精准
2.22 * 2.22会出现4.92840000……1
但是为什么2.22 * 2是4.44?
浮点数在计算机硬件中以二进制的形式存在,但是我们现在看到的都是十进制,而十进制的浮点数不能都完全精确的表示为二进制小数。
浮点数计算最好不要用float,会有精度问题
可以使用Decimal()方法
所谓不精准,是因为有误差,误差是哪来的呢,是因为除不尽
比如10进制下,计算1/3就除不尽,就是0.33333...
但是你在3进制下就能除尽,刚好是0.1
float型在计算机里是二进制表示的,那么有些10进制下能除尽的算法在二进制下除不尽,有些能除尽,这有什么可奇怪的呢
那些本来就能除尽的就没有误差了呗