ts文件中,Math.round和parseInt函数中包裹同样的表达式,为什么parseInt方法会有报错?
const current = 10;
const sumData = 30;
const roundData = Math.round(current / sumData);
const intData = parseInt(current / sumData)
Math.round正常编译,parseInt编译报错
ts文件中,Math.round和parseInt函数中包裹同样的表达式,为什么parseInt方法会有报错?
const current = 10;
const sumData = 30;
const roundData = Math.round(current / sumData);
const intData = parseInt(current / sumData)
Math.round正常编译,parseInt编译报错
在 TypeScript 中,parseInt 函数需要一个明确的基数参数,这是解析整数时使用的基数(或进制)。因此,当你在 parseInt 中没有提供基数时,TypeScript 会抛出一个错误,因为它不知道你想以何种进制解析这个数。
在你的代码中,你试图将 current / sumData
的结果解析为一个整数。由于这个表达式的结果是一个浮点数,所以没有明确的进制,因此 TypeScript 编译器会报错。
要解决这个问题,你可以在 parseInt 函数中提供一个基数参数。例如,如果你想以十进制解析这个数,你可以这样做:
const intData = parseInt(current / sumData, 10);
如果你想以二进制、八进制或十六进制解析这个数,你可以相应地更改基数。例如:
const intDataBinary = parseInt(current / sumData, 2); // 二进制
const intDataOctal = parseInt(current / sumData, 8); // 八进制
const intDataHex = parseInt(current / sumData, 16); // 十六进制
请注意,如果你提供的基数与你的解析值不匹配,parseInt 的结果可能会与你的预期不同。例如,如果你试图将一个大于 1 的浮点数解析为二进制或十六进制,结果可能会是一个小数。
8 回答4.7k 阅读✓ 已解决
6 回答3.4k 阅读✓ 已解决
6 回答2.3k 阅读
5 回答6.3k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
3 回答2.5k 阅读✓ 已解决
跟ts有关系吗?js也会报错吧,parseInt针对的是字符串