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

使用表示大于Number的值的字符串调用parseInt。MAX_SAFE_INTEGER

越鸿才
2023-03-14

我想询问parseInt在使用表示大于Number.MAX_SAFE_INTEGER的整数值的字符串调用时的行为。

从技术上讲,我假设我应该期待与直接使用该值相同的结果(即,作为数字而不是字符串)。

例如,以下两个将产生相同的值(无论其是否准确):

  • 常量x=parseInt(“0x1000000000000000000000000”)

然而,我确实明白,也许JS不能保证这一点。

所以我真正想知道的是,当使用表示大于Number的整数值的字符串调用时,我是否至少可以依靠parseInt返回一个不同于0的值。MAX_SAFE_INTEGER

共有1个答案

苏边浩
2023-03-14

这个问题是数字表示的基本问题-任何超过数字的数字。MAX\u SAFE\u INTEGER不再安全使用。基本示例:

const max = Number.MAX_SAFE_INTEGER;
const maxPlus1 = Number.MAX_SAFE_INTEGER + 1;
const maxPlus2 = Number.MAX_SAFE_INTEGER + 2;

console.log("max:", max); //9007199254740991
console.log("max + 1:", maxPlus1); //9007199254740992
console.log("max + 2:", maxPlus2); //9007199254740992

console.log("max + 1 = max + 2:", maxPlus1 === maxPlus2); //true
 类似资料:
  • NowCoder 题目描述 // true "+100" "5e2" "-123" "3.1416" "-1E-16" // false "12e" "1a3.14" "1.2.3" "+-5" "12e+4.3" 解题思路 使用正则表达式进行匹配。 // html [] : 字符集合 () : 分组 ? : 重复 0 ~ 1 次 + : 重复 1 ~ n 次 * :

  • 一、题目 请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。 例子说明 例如,字符串“+100”,“5e2”,“-123”,“3.1416”及”-1E-16”都表示数值,但“12e”,”1a3.14”,”1.2.3”,”+-5”及“12e+5.4”都不是。 二、解题思路 在数值之前可能有一个表示正负的’-‘或者’+’。接下来是若干个0到9的数位表示数值的整数部分(在某些小数里可能没有数值

  • 问题内容: 如果我有这样的字符串: 我需要一种从字符串中获取“ BAR”字符串的通用方法,以便无论方括号之间是什么字符串,都可以获取该字符串。 例如 问题答案: 你应该能够使用非贪婪的量词,特别是*?。你可能需要以下条件: 这将为你提供一个与你的字符串匹配的模式,并将文本放在第一组的方括号内。请查看Pattern API文档以获取更多信息。 要提取字符串,可以使用如下所示的内容:

  • 为什么在开关情况下不能将枚举值用作字符串?(或者这有什么问题:)

  • 本实例演示了如何通过NumberFormat类的parse方法解析数值字符串、货币字符串和百分数字符串。 例子 : 解析表示数值的字符串 实例的代码如下: package chapter8; import java.text.NumberFormat; import java.text.DecimalFormat; import java.text.FieldPosition; import ja