LoginSignup
0
4

More than 3 years have passed since last update.

少数のあれこれ【備忘】

Posted at

小数の桁数を取得する

$num1 = 12.345;
strlen(substr(strrchr($num1, '.'), 1));

解説

  • strrchr関数を使用して、ドット[.]の開始位置を取得
  • substr関数を使用して、ドット[.]の次の値以降を取得
  • strlen関数を使用して、取得文字の長さを取得

参考

小数点以下の数字を指定桁数だけ丸める

  • 丸める
    • 1.23 という値を小数点第一位で返したい場合、1.2で返す
    • 1.28 という値でも同様に小数点第一位で返したい場合は、1.2で返す
    • 上記数字を小数点第二位で返したい場合、1.23 は、1.23を返し、1.28 は、1.28を返す
$digit = 3;
$fraction = 1.2345;
round($fraction + 0.5 * pow(0.1, $digit), $digit, PHP_ROUND_HALF_DOWN)

解説

  • pow関数を使用して、指数を作る
    • 末尾に0.5を足す事で、繰り上げ・下げをせず 元々の値から指定した桁数だけ切り捨てて返すようにするため
  • round関数を使用して、浮動小数点を$precisionの値だけ丸める
    • その時、第3引数に PHP_ROUND_HALF_DOWN を指定して、0に近く方向に値を丸める
    • 例えば、1.5 → 1 にして、-1.5 → -1 にする

参考

小数の整数部と小数部をそれぞれ取得する

$num1 = 12.345;

$integer = floor($num1);
$fraction = $num1 - $integer;
$digit = strlen($integer);

解説

  • floor関数を使用して、整数部分を取得
  • 元の値から、整数部分を引いて、少数部分を取得
  • strlen関数を使用して、整数部分の桁数を取得

参考

0
4
0

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
4