gpt4 book ai didi

javascript - 计算数字位数的问题

转载 作者:行者123 更新时间:2023-11-28 16:54:51 25 4
gpt4 key购买 nike

这是一个计算给定数字的数字的代码。

这段代码有两个问题,我无法自行解决:

第一个:如果我们有像 count(502.1000); 这样的函数,小数的输出将是 1 而不是 4 ...

第二:如果我们有一个没有小数的数字,例如 count(5024); 数字的输出将是 1 而不是 4 ...

这是代码:

count(502.134); // Desired result is Numbers: 3 Decimals 3
count(502.1000); // Desired result is Numbers: 3 Decimals 4
count(5024); // Desired result is Numbers: 4 Decimals 0

function count(num) {

Number.prototype.countDecimals = function () {
if(Math.floor(this.valueOf()) === this.valueOf()) return 0;
return this.toString().split(".")[1].length || 0;
}

Number.prototype.countNumber = function () {
if(Math.floor(this.valueOf()) === this.valueOf()) return 1;
return this.toString().split(".")[0].length || 0;
}

var a = Math.abs(num).countNumber();
var b = Math.abs(num).countDecimals();

console.log('Numbers: ' + a + ' Decimals '+ + b)
}

最佳答案

抱歉,我认为编写自己的函数比分析您的代码更快:

function getDigitLength(num) {
if (!num) {
return;
}

const numString = num.toString();
const split = numString.split('.');

const numbers = split[0].length;

const decimals = split[1] ? split[1].length : 0;

console.log('Numbers: ' + numbers + ' Decimals '+ decimals);
}

做得非常快,可以进行一些重构。它应该会产生你所追求的结果。

顺便说一下,对于这个 count(502.1000);//期望的结果是 Numbers: 3 Decimals 4 很困难,因为 javascript 会将 502.1000 转换为 502.1。仅当您将 502.1000 作为字符串传递时,它才会起作用。

关于javascript - 计算数字位数的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59415222/

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