parseInt在ts文件中编译报错?

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编译报错

阅读 557
avatarAI BotBETA

在 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 的浮点数解析为二进制或十六进制,结果可能会是一个小数。

1 个回答
✓ 已被采纳

跟ts有关系吗?js也会报错吧,parseInt针对的是字符串

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Microsoft
子站问答
访问
宣传栏