js和py的二进制输出不同



我试过把一个数字转换成二进制数字,这在Python和JavaScript中都有效。我的问题是它们都返回不同的组合。

输入585190997647163394,

JavaScript返回:100000011111000001000001110010100100100001000000000000000000

Python返回:100000011111000001000001110010100100100001000000000000000010

二进制组合中的倒数第二位数字不匹配。


下面是我的代码:

JavaScript:

var bin = (+in).toString(2);
console.log(bin);

Python:

print(bin(int(input("int >"))))

JavaScript使用双精度浮点数。585190997647163394太大

585190997647163394 > Number.MAX_SAFE_INTEGER

四舍五入为585190997647163392。

你可以用BigInt代替。

Python有任意精度的数字。数字以字符串的形式存储。Python不会四舍五入来存储它。

最新更新