Method: 1. Use the "*" operator to expand the decimal by 10 times. The syntax "$a=decimal*10;" moves the decimal point backward one place; 2. Use floor() to expand the decimal The decimal is rounded down and the decimal part is discarded, the syntax is "$b=floor($a);"; 3. Divide the rounded number by 10, the syntax is "$c=$b/10;".
The operating environment of this tutorial: windows7 system, PHP7.1 version, DELL G3 computer
php reserves one digit Decimal (not rounded) method
For example, 3.1625
takes 1 decimal place, and the last digit cannot be rounded. Result: 3.1
.
In PHP, you can use the floor function to achieve one decimal place without rounding.
The floor function uses rounding.
For example, floor(4.66456)
Result: 4
; floor(9.1254)
Result 9
.
Therefore, to remove 1 decimal place, you need to multiply by 10 first, then round off, and then divide by 10, that is:
$a=小数*10; $b=floor($a); $c=$b/10;
is directly simplified to:
floor(小数*10)/10
Example:
<?php header('content-type:text/html;charset=utf-8'); echo (floor(3.1625*10)/10)."<br>"; echo (floor(0.5985*10)/10)."<br>"; echo (floor(1.1425*10)/10)."<br>"; ?>
Extended knowledge: Method of retaining several decimal places (rounding)
1. round function
round(小数,保留位数)
2. The sprintf function
sprintf("%01.位数值f", 小数)
implements rounding, and if it does not have decimal places, it will automatically use the specified character (specified 0) to fill in the specified decimal places
echo sprintf("%01.2f", 5.228); // 5.23 echo sprintf("%01.2f", 5.224); // 5.22 echo sprintf("%01.2f", 5); // 5.00
3, number_format function
number_format(小数,保留位数)
If it does not have a decimal place, it will automatically fill it with 0 to the specified decimal place
echo number_format(5.228,2); // 5.23 echo number_format(5.224,2); // 5.22 echo number_format(5,2); // 5.00
Recommended learning: "PHP Video tutorial》
The above is the detailed content of Why doesn't php round to one decimal place?. For more information, please follow other related articles on the PHP Chinese website!