javascript数学不起作用

javascript数学不起作用,javascript,python,math,Javascript,Python,Math,为什么javascript数学运算产生的结果与python不同?如何修复它 python: >> 4-((4/3)*3)+1 >> 2 javascript: >> 4-((4/3)*3)+1 >> 1 在python中,4/3==1,因为它是一个整数运算。在JS中,它是一个浮点运算,因此4/3==1.3333 如果需要python中的浮点运算,请在等式中使用浮点。例如 4-((4/3)*3)+1==2(整数) 4-((4.0/3.0)*3)+

为什么javascript数学运算产生的结果与python不同?如何修复它

python:

>> 4-((4/3)*3)+1
>> 2
javascript:

>> 4-((4/3)*3)+1
>> 1

在python中,
4/3==1
,因为它是一个整数运算。在JS中,它是一个浮点运算,因此
4/3==1.3333

如果需要python中的浮点运算,请在等式中使用浮点。例如

4-((4/3)*3)+1==2
(整数)


4-((4.0/3.0)*3)+1==1
(Float)

实际上,javascript为4/3生成1.333333的十进制值,并乘以3,这往往会生成4。 1是4-((4/3)*3)+1的正确结果 但是如果你想要2作为你的结果,那么你需要将4/3的值解析为int,这样1.333333将变成1,乘以3将得到3


alert(4-(parseInt(4/3)*3)+1)
pyhton 3返回1.0/pyhton 2返回2,因此python-2和3之间的差异即使没有括号,在js1中也是如此。在python中,
4/3
将返回
1
而不是
1.33
这可能会有所帮助:可以说python的数学“不起作用”这里…最好从uuu future uuuu import division开始执行
,强制Python2执行浮点除法。对于像我这样特别懒惰的读者,提示:您只需要一个参数是浮点就可以得到浮点除法,而浮点文本可以以小数点结尾,所以只需添加一个点即可完成此操作:
4-((4./3)*3)+1