javascript - Javascript用0替换最后一个数字而不是用指数符号表示数字
问题描述
我有应该处理大数字的javascript代码,并希望它们以指数表示法显示。我无法弄清楚为什么 x 值将最后 4 位数字替换为 0,但 y 值甚至更大的数字只会按预期显示 - 使用指数表示法。然后我想用固定点显示 x 它返回完全错误的值。以下代码在控制台中进行了测试。知道为什么会这样吗?
var y=1111111111111111111111111111111111111111 > 1.1111111111111112e+39
var x=111111111111111111111 > 111111111111111110000
Number(x).toFixed(4) > "111111111111111114752.0000"
var y=1111111111111111111111111111111111111111;
console.log(y);
var x=111111111111111111111 ;
console.log(x);
console.log(Number(x).toFixed(4));
解决方案
toFixed() 返回 numObj 的字符串表示形式,它不使用指数表示法,并且在小数点后具有精确的数字。必要时对数字进行四舍五入,必要时用零填充小数部分,使其具有指定的长度。如果 numObj 的绝对值大于或等于 1e+21,则此方法只需调用 Number.prototype.toString() 并以指数表示法返回一个字符串。
警告:浮点数不能以二进制精确表示所有小数。这可能会导致意外结果,例如 0.1 + 0.2 === 0.3 返回 false 。
有关更多信息,请查看:https ://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toFixed
推荐阅读
- sql - 根据用户参数过滤 bigquery 中的行
- dns - 当我尝试将我的 VM win 10 连接到我的 VM Server 2019 本地域时出现 Azure AD 错误消息
- javascript - 使用 Selenium 自动结帐过程时出现 403
- android - 检查在 RecyclerView 中可以看到多少项目
- mysql - 从sql中的客户表中计算每个不同城市的客户数
- react-native - 不变违规:requireNativeComponent:在 UIManager 中找不到“VRTImage”
- r - R Tidyverse:结转不存在变量的值
- javascript - Vue:具有固定前缀和样式的下拉菜单
- azure - Azure DevOps 中构建管道失败时如何添加相关工作项?
- xamarin.forms - 在 ContentView 中使用 contentPage 的某些方法的覆盖