gpt4 book ai didi

数量级的 JavaScript 底数

转载 作者:可可西里 更新时间:2023-11-01 01:48:45 33 4
gpt4 key购买 nike

我想根据数量级对任何整数 >= 10 进行取整。例如,

15 -> 10
600 -> 100
8,547 -> 1,000
32,123 -> 10,000
3,218,748 -> 1,000,000
544,221,323,211 -> 100,000,000,000
....

我正在考虑将 int 解析为 string 并计算那里有多少位数字,然后将新字符串设置为 1 + 一堆零并转换回数字。

function convert(n) {
nStr = n.toString();
nLen = nStr.length;
newStr = "1" + Array(nLen).join("0");
return parseInt(newStr);
}

有没有更数学的方法来做到这一点?我想避免在 intstr 之间进行转换,因为当 n 很大并且我想这样做时,它可能会浪费大量内存和磁盘空间运行此函数一百万次。

最佳答案

所以您正在寻找数量级。

function convert(n) {
var order = Math.floor(Math.log(n) / Math.LN10
+ 0.000000001); // because float math sucks like that
return Math.pow(10,order);
}

简单^_^ 数学真棒!然而,浮点不精确不是。请注意,这在某些边缘情况下并不完全准确,但会尽力而为。

关于数量级的 JavaScript 底数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23917074/

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