みさご解体新書

小数部を取り出す

概要

与えられた数値から小数部だけを取り出し、数値として返却する。

たとえば 123.456 を与えると 0.456 が返る。

コード例(文字列に変換)

function getDecimalPart(v: number): number {
  let str = v.toString();
  str = str.split(".")[1];
  const num = parseFloat("0." + str);
  return num;
}
console.log(getDecimalPart(12.3456789)); // 0.3456789

対象値を文字列に変換後、小数点の右側にある小数部を取り出し、数値に変換して返却する。

コード例(1 で割った余りを取る)

let n = 12.3456789;
n = Math.abs(n); // 符号をとる

console.log(n % 1); // 0.34567889999999935

1 で割った余りで小数部を取りだす方法。

値が負数の場合もあるので、前もって絶対値関数で符号を外しておく。

コード例(値の整数部を引く)

let n = 12.3456789;
n = Math.abs(n); // 符号をとる

console.log(n - Math.floor(n)); // 0.34567889999999935

値から値の整数部を引くことで小数部を取り出す方法。

値が負数の場合で床関数を実行すると整数部の値が変わる可能性があるので、前もって絶対値関数で符号を外しておく。

ソースコード

app.ts

内部で利用しているアルゴリズム

床関数, 絶対値