toString(16)为何会转换出带小数点的结果?
使用toString(16)转换浮点数时部分数据会出现带小数点的结果查了一下文档也没找到原因,该如何处理成没有小数点的?
代码很简单:
const send_azHex = Number(az*100).toString(16);
const send_elHex = Number(el*100).toString(16)
console.log(Number(az),'=>',send_azHex);
console.log(Number(el),'=>',send_elHex);
运行结果如下:
104.4 => 28c8
2.4 => f0
104.4 => 28c8
2.4 => f0
104.4 => 28c8
2.3 => e5.fffffffffff8
104.4 => 28c8
2.2 => dc.000000000008
104.4 => 28c8
2.2 => dc.000000000008
104.4 => 28c8
2.1 => d2
104.4 => 28c8
回复
1个回答

test
2024-07-18
const send_azHex = Math.round(Number(az*100)).toString(16);
const send_elHex = Math.round(Number(el*100)).toString(16)
console.log(Number(az),'=>',send_azHex);
console.log(Number(el),'=>',send_elHex);
回复

适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容