首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何防止号码使用number1"E"number2

如何防止号码使用number1"E"number2
EN

Stack Overflow用户
提问于 2014-12-23 11:06:26
回答 2查看 77关注 0票数 0

我需要帮助,因为如果我试图写一个有一大堆零的数字,它会变成num1Enum2。

例如:对于googol,它会写成"1E100“。

我希望它实际写出数字,而不是缩写形式。我该怎么做呢?

注意:我希望它仍然是一个整数而不是一个字符串。

EN

回答 2

Stack Overflow用户

发布于 2014-12-23 11:23:06

你可以尝试一个大的数字处理库,比如big.js。否则,您唯一的解决方案将是将大数字拆分为数组,并编写自己的数学函数来处理它们--类似于此函数将数组视为整数并递增:

代码语言:javascript
复制
var longVal=[0];

// inherits global array longVal[]
// increments each element from right to left
function inc() {
    for (var i=longVal.length - 1; i>=0; i--) {
        if (++longVal[i] == 10) {
            longVal[i] = 0;
            if (!i) {
                longVal.splice(0, 0, 0);
                i++;
            }
            continue;
        }
        else break;
    }
}

我认为如果超过了数组的长度限制,可以将if (++longVal[i] == 10)行改为类似if (++longval[i] == 1000000000)这样的代码,但除了第一个数组元素外,必须向左填充第一个数组元素才能使其变为十位数。我还没有测试过这一点。我的答案是概念,而不是实现。

票数 0
EN

Stack Overflow用户

发布于 2014-12-23 11:35:19

如果你“写出”一个数字,你会得到一个字符串。句号。"Writing“是指输出一系列表示数字的字符。但这就是字符串的本质:一个字符序列。

像1E100这样的数字太大了,无法表示为正常大小的整数,即使在内部也是如此。为了得到一个像整数一样大的值,你必须使用某种类型库来表示大整数。四处找找看。有几个,名字像"BigInt","BigInteger","BigNumber","LongDecimal“等等。它们都应该能够在内部存储任意大的整数值,并且都应该提供一种将该值转换为字符串的方法,然后可以将其写出来。选一个你喜欢的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27613529

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档