我被一个整数分割的数(可以是XX.XX的量格式)。
但是当我做6.6 / 6或3.3 / 3,它给出了1.099999 ......,而不是1.1。
我在做什么是,我均分的人数之间的量,如果存在任何余量,我加入额外的量,以一个人在他们之中。
可能是这样的东西,将104/6被分为17.85,17.83,17.83,17.83,17.83,17.83 [可能不准确,只是为了说明。
JS斌链接----> http://jsbin.com/amileg/1/edit
请帮我在得到正确的计算逻辑。
谢谢!!
这是浮点运算和那些被舍入误差。 你可以阅读这更多。
挤压无穷多个实数为有限位数需要一个近似表示。 虽然有无限多的整数,在大多数程序整数计算的结果可被存储在32位。 相比之下,给定任意固定位数,大多数计算实数会产生一种不能使用,很多位准确表示数量。 因此浮点计算的结果常常必须以适应回其有限表示进行四舍五入。 此舍入误差是浮点计算的特征。
在JavaScript中的所有数字以二进制表示为IEEE-754双打 ,它提供了一个准确度至约14或15显著数字。 他们并不总是完全代表实数,包括分数。
您可以使用.toFixed()
var res = (vall / tot).toFixed(2);
//input `6.6/6`: , output : `1.10`
演示---->
http://jsbin.com/amileg/4/edit