当前位置: 首页 > 知识库问答 >
问题:

前端 - parseInt在ts文件中编译报错?

章昊
2024-01-08

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

共有1个答案

郎经纶
2024-01-08

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

 类似资料:
  • events.js:377 RangeError [Error]: Maximum call stack size exceeded Emitted 'error' event on process instance at: npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! sea-wind-power@1.0.0 dev: vite --hos

  • 前端文件: /src/app/api/compress/route.ts 后端文件:src/app/api/upload/route.ts 报错内容: 麻烦各位熟悉Next的大佬看一下 问题代码的GitHub地址:https://github.com/AnsonZnl/next-upload

  • 我创建了一个ts文件如下: 当我运行时候报错: 如果我用require就可以引入。 执行成功。 是否这个意思意味的是,ts-morph 这个库没有导出esm模块,只导出了cjs模块?

  • 我写了下面提到的一个简单的java程序。不幸的是,编译错误发生了。 在编译过程中,在命令提示符下会显示以下内容: c:\Java 它对我的任何程序都不起作用,即使是这个简单的程序也不行!这是为什么? 编辑: 现在我有: 而且它不起作用。为什么不起作用? 它说的和以前一样。 你对Java所说的。lang.String[]有效,但为什么不能呢?为什么我以前不需要穿上这些?