js 加减乘除计算的问题
我今天需要做个自定义公式的功能,就是可以选择参数,可以自行选择+_*/()这些基本运算符我在做有效性判断的时候,发现/+/-甚至///这样的居然js全都给我算出数字来了如...
我今天需要做个自定义公式的功能,就是可以选择参数,可以自行选择 + _ * / ( )
这些基本运算符
我在做有效性判断的时候,发现 /+ /- 甚至 ///这样的居然js全都给我算出数字来了
如 2/+2+4/-5 结果为0.199999999
还有 2//////////2 结果是2
请问这些是如何计算出来的?我实在很不解...
我快下班了,我会在明天给出满意答案 谢谢大家了 展开
这些基本运算符
我在做有效性判断的时候,发现 /+ /- 甚至 ///这样的居然js全都给我算出数字来了
如 2/+2+4/-5 结果为0.199999999
还有 2//////////2 结果是2
请问这些是如何计算出来的?我实在很不解...
我快下班了,我会在明天给出满意答案 谢谢大家了 展开
2个回答
展开全部
javascript中的运算时存在问题的,下面以除法为例,仅供参考:
javascript中的除法问题:
计算一下:
8.80 * 100 * 12 / 100
结果:105.60000000000002
38.80也会出现类似的问题。
精确度增加10倍:
8.80 * 1000 * 12 / 1000
结果:105.6
正常了。
16.40 * 1000000 * 6 / 1000000
结果也有问题
为了让js执行的更准确,在以后的js小数计算中直接将值扩大10000倍,再除以10000,就可以解决问题。
var num = 38.80;
var num2 = 13;
alert(num * 10000 * 12 / 10000);
被乘和除的这个数经过测试10000最合适,小了有些数字出问题,大了(1000000)有些数字也出问题。
javascript中的除法问题:
计算一下:
8.80 * 100 * 12 / 100
结果:105.60000000000002
38.80也会出现类似的问题。
精确度增加10倍:
8.80 * 1000 * 12 / 1000
结果:105.6
正常了。
16.40 * 1000000 * 6 / 1000000
结果也有问题
为了让js执行的更准确,在以后的js小数计算中直接将值扩大10000倍,再除以10000,就可以解决问题。
var num = 38.80;
var num2 = 13;
alert(num * 10000 * 12 / 10000);
被乘和除的这个数经过测试10000最合适,小了有些数字出问题,大了(1000000)有些数字也出问题。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询