Flash 动作脚本3中的奇数运算? 重复: 对于每种语言和平台,都有许多其他问题,都有相同的答案

Flash 动作脚本3中的奇数运算? 重复: 对于每种语言和平台,都有许多其他问题,都有相同的答案,flash,actionscript,floating-point,Flash,Actionscript,Floating Point,打印出来 >> 0.6000000000000227 为什么?浮点舍入错误。浮点数不能准确地表示某些值,因此您看到的是使用FP数的局限性。尾数(FP num中给出准确度的部分)只有一定数量的位,当某些东西不能精确表示时,您会得到如上所示的结果。我知道0.1不能准确表示,因此0.6也不能准确表示是有道理的。从本质上讲,浮点数的小数部分是一个求和: 1/2 + 1/4 + 1/8 + ... 其中,每个分数是浮点表示的一位。正如paintballbob提到的,这意味着有些数字无法表示

打印出来

>> 0.6000000000000227

为什么?

浮点舍入错误。浮点数不能准确地表示某些值,因此您看到的是使用FP数的局限性。尾数(FP num中给出准确度的部分)只有一定数量的位,当某些东西不能精确表示时,您会得到如上所示的结果。我知道0.1不能准确表示,因此0.6也不能准确表示是有道理的。

从本质上讲,浮点数的小数部分是一个求和:

1/2 + 1/4 + 1/8 + ...
其中,每个分数是浮点表示的一位。正如paintballbob提到的,这意味着有些数字无法表示(例如0.1)


据我所知,AS3中没有内置定点十进制(尽管有第三方库)。

关于浮点的问题很多,答案都是一样的。基于Pax评论的智慧,这个答案是典型的。去读吧。
1/2 + 1/4 + 1/8 + ...