I want to drop off decimals without rounding up. For example if I have 1.505, I want to drop last decimal and value should be 1.50. Is there such a function in PHP?
Use the PHP native function bcdiv
echo bcdiv(2.56789, 1, 2); // 2.56
You need floor() in this way:
$rounded = floor($float*100)/100;
Or you cast to integer:
$rounded = 0.01 * (int)($float*100);
This way it will not be rounding up.
you can convert 1.505
to String data type and make use of substring()
to truncate last character.
And again convert it in integer
.
$num = 118.74999669307;
$cut = substr($num, 0, ((strpos($num, '.')+1)+2));`
// Cut the string from first character to a length of 2 past the decimal.
/ substr(cut what, start, ( (find position of decimal)+decimal itself)+spaces after decimal) )
echo $cut;
this will help you shorten the float value without rounding it..
We can use bc functions if they are available:
echo bcadd(sprintf('%F', 5.445), '0', 2); // => 5.44
echo sprintf('%.2F', 5.445); // => 5.45
$float = 1.505;
echo sprintf("%.2f", $float);
//outputs 1.50