ホームページ  >  記事  >  バックエンド開発  >  なぜphpは小数点第1位に四捨五入しないのでしょうか?

なぜphpは小数点第1位に四捨五入しないのでしょうか?

青灯夜游
青灯夜游オリジナル
2022-05-27 18:51:315520ブラウズ

方法: 1. 「*」演算子を使用して、小数点を 10 倍に拡張します。構文「$a=decmal*10;」により、小数点が 1 桁後方に移動します。2. フロア() を使用して、小数点を切り捨てる 小数点以下は切り捨てられ、構文は "$b=floor($a);"; 3. 四捨五入された数値を 10 で割る、構文は "$c=$b/10" です。 ;"。

なぜphpは小数点第1位に四捨五入しないのでしょうか?

このチュートリアルの動作環境: Windows7 システム、PHP7.1 バージョン、DELL G3 コンピューター

php リザーブ1 桁 10 進数 (四捨五入なし) 方式

たとえば、3.1625 は小数点以下 1 桁を取り、最後の桁は四捨五入できません。結果: 3.1

PHP では、floor 関数を使用すると、四捨五入せずに小数点第 1 位を取得できます。

floor 関数は丸めを使用します。

たとえば、floor(4.66456) 結果: 4; floor(9.1254) 結果 9

したがって、小数点以下 1 桁を削除するには、まず 10 を掛けてから四捨五入し、その後 10 で割る必要があります。つまり、

$a=小数*10;
$b=floor($a);
$c=$b/10;

は次のように単純化されます。

floor(小数*10)/10

例:

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

なぜphpは小数点第1位に四捨五入しないのでしょうか?

拡張知識: 小数点以下桁数を保持する方法(四捨五入)

1.round関数

round(小数,保留位数)

2. sprintf 関数

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

は四捨五入を実装しており、小数点以下の桁がない場合は、指定された文字 (0 を指定) を自動的に使用して指定された小数点以下の桁を埋めます

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(小数,保留位数)

小数点以下の桁がない場合は、指定された小数点以下の桁まで自動的に 0 で埋められます

echo number_format(5.228,2);    //  5.23
echo number_format(5.224,2);    //  5.22
echo number_format(5,2);        //  5.00

推奨学習: "

PHP ビデオ チュートリアル>>

以上がなぜphpは小数点第1位に四捨五入しないのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。