gpt4 book ai didi

Javascript评估数字以零作为小数开头

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:44:07 25 4
gpt4 key购买 nike

我想评估以零开头的数字作为十进制数。

例如,让我们定义convertToDec

convertToDec(010) => 10 
convertToDec(0010) => 10
convertToDec(0123) => 123

等..

因为所有以 0 开头的 js 数字都是以 8 为底计算的,所以我尝试这样做:

function convertToDec(num){
return parseInt(num.toString(), 10);
}

但是 toString 函数解析以 8 为基数的数字。

有什么建议吗?

谢谢!

最佳答案

如果您在 JavaScript 中字面编写0010,那么它将被视为八进制数。这就是解析器的工作方式。

来自 MDN's docs :

  • 十进制整数字面量由不带前导 0(零)的数字序列组成。
  • 整数文字上的前导 0(零)表示它是八进制的。八进制整数只能包含数字 0-7。
  • 前导 0x(或 0X)表示十六进制。十六进制整数可以包括数字 (0-9) 和字母 a-f 和 A​​-F。
  • 前导 0b(或 0B)表示二进制。二进制整数只能包含数字 0 和 1。

因此,当您编写 convertToDec(0010) 时,您的浏览器会将其解释为 convertToDec(8)。它已经被“转换”为 8,因为您使用了“八进制文字”。

如果您想要文字“0010”,那么您需要使用字符串。

parseInt("0010", 10); // 10

关于Javascript评估数字以零作为小数开头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33153039/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com