2016-08-23 5 views
0

PHPを使用して数値を切り捨てようとしています。php rounding down

以下の方法を使用して、値に小数点以下の桁がある場合は、これを行うことができました。

$val = floor($val * 2)/2; 
echo 'hello'. $val; 

切り捨てようとしている値に小数点がなく、上記のコードが機能していない場合。

私が切り捨てようとしている値。

32456 => 32000 

4567 => 4000 

38999 => 38000 
+0

数値に小数点がない場合、 '$ val * 2'も整数になりますので、' floor() 'はそれを変更しません。 – Barmar

+0

を参照してください(https://stackoverflow.com/q/43932648/6521116) –

答えて

5

これを行う方法はいくつかあります。あなたが望んでいた場合、あなたも$n - ($n % 1000)を行うことができますが、これは取得します

function roundDown($n, $increment) 
{ 
    return floor($n/$increment) * $increment; 
} 

:より一般的に

function roundDown1000($n) 
{ 
    return floor($n/1000) * 1000; 
} 

:(最も近い千に切り捨てのために)最も一般的な方法は、このようなものになるだろう$n < 0の奇妙な結果。