0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【JavaScript】数値の桁数を得る

Last updated at Posted at 2023-09-05

概要

桁数を得る関数の公開・共有

動機

jsにおける数値の桁数取得についてググったが
専用の標準機能はなかったので作成

処理の流れ

入力値は小数値を切り捨てた絶対値に変換して扱う。

変換後の値が0である場合は、
zeroDigitパラメータで指定された引数を返す。

0に対する桁数の解釈は諸説(0,1,-Infinity)ある。
故にTwitter上で行われていたアンケートにおいて、
最多票数を得た1をzeroDigitのデフォルト値とする。

また、変換後の値が0以外である場合は、
⌊log10(n)+1⌋ により桁数判定を行う。

コード

function digit(number, zeroDigit = 1){
  const number_ = Math.floor( Math.abs(number) )
  const isZero = number_ == 0
  const isZeroFunc = () => zeroDigit
  const notZeroFunc = () => Math.floor( Math.log10(number_) ) + 1
  const currentFunc = isZero ? isZeroFunc : notZeroFunc
  const result = currentFunc()
  return result
}

実行結果

digit(0)    // -> 1
digit(0.01) // -> 1
digit(9)    // -> 1
digit(10)   // -> 2
digit(-50)  // -> 2
digit(0,0)  // -> 0
0
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?