将大JavaScript十六进制数转换为字符串
我有一个很大的十六进制数,(不是字符串),类似于:将大JavaScript十六进制数转换为字符串,javascript,Javascript,我有一个很大的十六进制数,(不是字符串),类似于: var bytes = 0x8136ae64614c30da74d4412273bfb; // this is a number, not a String 我想把它转换成一个字符串toString(16)截断它,所以我得到8136AE64614C3000000000000。但是我需要把整数转换成字符串 已经尝试了BigInt,但1)截断,2)宁愿少一个依赖项 有没有一种方法可以将该数字打印成字符串而不丢失任何内容?这个数字来自哪里0x813
var bytes = 0x8136ae64614c30da74d4412273bfb; // this is a number, not a String
我想把它转换成一个字符串toString(16)
截断它,所以我得到8136AE64614C3000000000000
。但是我需要把整数转换成字符串
已经尝试了BigInt
,但1)截断,2)宁愿少一个依赖项
有没有一种方法可以将该数字打印成字符串而不丢失任何内容?这个数字来自哪里<代码>0x8136ae64614c30da74d4412273bfb已经没有数字那么精确了。使用,
0x8136ae64614c30da74d4412273bfbn.toString(16)
或BigInt(“0x8136ae64614c30da74d4412273bfb”)。toString(16)
应该可以工作。从API调用中获取该数字如何准确地从API调用中获取如此精确的数字?你确定你没有得到一个字符串吗?不,这是一个数字。这就是为什么我在问题中强调这是一个数字,并且我已经尝试过字符串和BigInt…0x8136ae64614c30da74d4412273bfb比javascript中最安全的数字大得多。而0x
是十六进制数字文本的表示方式。在内部,它们都存储为IEEE754标准。除非获取字符串,否则无法从API获取前缀为0x
的数字作为JSON。正如@SebastianSimon所提到的,您可以从API以字符串格式发送它,并使用BigInt
将其用作数字,而不会丢失精度