详解JavaScript获取数字的位数

javascript中编写了一个示例代码,用于获取数字位数的示例代码。

获取数字的位数

要获得数字的位数,如果是整数的话,只需将整数转换为字符并获得长度即可。

const integer = 12345;

console.log(integer.toString().length); // 5

但是,如果是负数或小数,这样就不行了。

const integer = 12345;
const mInteger = -12345;

const float = 123.45;
const mFloat1 = -123.45;
const mFloat2 = -0.1234;

const zero = 0;

console.log(integer.toString().length); // 5
console.log(mInteger.toString().length); // 6
console.log(float.toString().length); // 6
console.log(mFloat1.toString().length); // 7
console.log(mFloat2.toString().length); // 7
console.log(zero.toString().length); // 1

如果要处理负数或小数,则必须分为整数和小数部分来处理。

function countNum(num){

  // 取得整数部分的位数(以绝对值取得长度)
  let intNum = Math.floor(Math.abs(num)).toString().length;

  // 获取小数部分的位数,除去“0”和“.”两个字符
  let floatNum = parseFloat("0."+(String(num)).split(".")[1]).toString().length -2;

  // 如果是整数,则长度为0
  if( floatNum === -1 ){ floatNum = 0 ; }
  
  return intNum + floatNum;

}

const integer = 12345;
const mInteger = -12345;

const float = 123.45;
const mFloat1 = -123.45;
const mFloat2 = -0.1234;

const zero = 0;

console.log(countNum(integer)); // 5
console.log(countNum(mInteger)); // 5
console.log(countNum(float)); // 5
console.log(countNum(mFloat1)); // 5
console.log(countNum(mFloat2)); // 5
console.log(countNum(zero)); // 1

详解JavaScript获取数字的位数  第1张

示例代码

单击“运行”按钮,获取在表单中输入的值并显示位数。

<!DOCTYPE html>
<html>

<head>
  <meta charset="utf-8">
  <title>详解JavaScript获取数字的位数</title>
  <link href="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/5.2.2/css/bootstrap.min.css" rel="stylesheet">
</head>

<body>
	<div class="container text-center" style="margin-top:100px">
		<h2><span class="badge bg-info">结果</span></h2>
		<p id="foo" class="badge bg-info"></p>
		<div class="form-group">     
			<input id="n" type="number">
		</div>
		<button id="btn" class="btn btn-info">
			提交
		</button>
	</div>

	<script>
		window.onload = () => {

			btn.onclick = () => {      
			  foo.innerHTML = countNum(Number(n.value));
			}

		  }

		  const countNum = (num) => {

			// 取得整数部分的位数(以绝对值取得长度)
			let intNum = Math.floor(Math.abs(num)).toString().length;

			// 获取小数部分的位数,除去“0”和“.”两个字符
			let floatNum = parseFloat("0." + (String(num)).split(".")[1]).toString().length - 2;

			// 如果是整数,则长度为0
			if (floatNum === -1) { floatNum = 0; }

			return intNum + floatNum;

		  }

	</script>
	
</body>

</html>

运行结果

详解JavaScript获取数字的位数  第2张

本文来源:词雅网

本文地址:https://www.ciyawang.com/javascript-number-length.html

本文使用「 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 」许可协议授权,转载或使用请署名并注明出处。

相关推荐