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

Why doesn't php round to one decimal place?

青灯夜游
Release: 2023-03-16 09:04:01
Original
5625 people have browsed it

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;
Copy after login

is directly simplified to:

floor(小数*10)/10
Copy after login

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>";
?>
Copy after login

Why doesnt php round to one decimal place?

Extended knowledge: Method of retaining several decimal places (rounding)

1. round function

round(小数,保留位数)
Copy after login

2. The sprintf function

sprintf("%01.位数值f", 小数)
Copy after login

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
Copy after login

3, number_format function

number_format(小数,保留位数)
Copy after login

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
Copy after login

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!

Related labels:
php
source:php.cn
Statement of this Website
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template