溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

php有哪些保留兩位小數(shù)的方法

發(fā)布時(shí)間:2020-07-20 14:31:09 來(lái)源:億速云 閱讀:454 作者:Leah 欄目:編程語(yǔ)言

php有哪些保留兩位小數(shù)的方法?針對(duì)這個(gè)問(wèn)題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問(wèn)題的小伙伴找到更簡(jiǎn)單易行的方法。

1.不進(jìn)位的情況

比如3.149569取小數(shù)點(diǎn)后兩位,最后兩位不能四舍五入。結(jié)果:3.14。

可以使用 floor 函數(shù)

該函數(shù)是舍去取整。例如,floor(4.66456) 結(jié)果:4 。

floor(9.1254) 結(jié)果9 。

因此,去小數(shù)點(diǎn)后兩位,需要先乘以100,然后舍去取整,再除以100,即:

$a=floor(3.149569*100)/100

這時(shí)浮點(diǎn)計(jì)算會(huì)出現(xiàn)一個(gè)bug,通過(guò)PHP的無(wú)類型特性來(lái)解決這個(gè)問(wèn)題,先strval轉(zhuǎn)成字符串,再自動(dòng)識(shí)別類型。下面計(jì)算百分比已經(jīng)使用上strval()函數(shù)了

計(jì)算百分比

$successRate = floor(strval((2/3)*10000))/10000*100;
$result = $successRate.'%';

2.四舍五入的情況

round 函數(shù)

float round ( float val [, int precision])

返回將 val 根據(jù)指定精度 precision(十進(jìn)制小數(shù)點(diǎn)后數(shù)字的數(shù)目)進(jìn)行四舍五入的結(jié)果。

precision 也可以是負(fù)數(shù)或零(默認(rèn)值)。

<?php
echo round(3.4);         // 3
echo round(3.5);         // 4
echo round(3.6);         // 4
echo round(3.6, 0);      // 4
echo round(1.95583, 2);  // 1.96
echo round(1241757, -3); // 1242000
echo round(5.045, 2);    // 5.04
echo round(5.055, 2);    // 5.06

sprintf 函數(shù)

實(shí)現(xiàn)四舍五入,并且如果是不帶小數(shù)位數(shù)的,會(huì)自動(dòng)用指定的字符(指定的0)補(bǔ)至指定的小數(shù)位數(shù)

echo sprintf("%01.2f", 5.228);  //  5.23
echo sprintf("%01.2f", 5.224);  //  5.22
echo sprintf("%01.2f", 5);      //  5.00

number_format 函數(shù)

如果是不帶小數(shù)位數(shù)的,會(huì)自動(dòng)用0補(bǔ)至指定的小數(shù)位數(shù)

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

 round 函數(shù)

此函數(shù)可以實(shí)現(xiàn)四舍五入,但是如果是不帶小數(shù)位數(shù)的,處理后也不帶小數(shù)數(shù)位

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

 php進(jìn)一法取整

echo ceil(4.4);     //  5
echo ceil(4.6);     //  5

 php舍去法取整

echo floor(4.4);        //  4
echo floor(4.6);        //  4

關(guān)于php有哪些保留兩位小數(shù)的方法問(wèn)題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒(méi)有解開(kāi),可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識(shí)。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI