Home >Backend Development >PHP Problem >Why doesn't php round to one decimal place?

Why doesn't php round to one decimal place?

青灯夜游
青灯夜游Original
2022-05-27 18:51:315623browse

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;".

Why doesn't php round to one decimal place?

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(&#39;content-type:text/html;charset=utf-8&#39;);   
echo (floor(3.1625*10)/10)."<br>";
echo (floor(0.5985*10)/10)."<br>";
echo (floor(1.1425*10)/10)."<br>";
?>

Why doesnt php round to one decimal place?

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!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn