在PHP中检测float是否具有零分数值(例如125.00)的最佳方法是什么?

rac*_*101 6 php math function

看,我想编写一个函数,它接受一个浮点数参数并将浮点数舍入到最接近的货币值(一个带有两个小数位的浮点数)但是如果浮点参数的零分数(即小数点后面的所有零) )然后它将float作为整数返回(或者即截断小数部分,因为它们都是零都是零.).

但是,我发现我无法弄清楚如何确定一个分数是否具有零分数.我不知道是否有PHP函数已经这样做了.我看了.我能想到的最好的方法是先将浮点数转换为整数,然后再从浮点数中减去整数部分,然后检查差值是否等于零.

Sur*_*ams 14

if($value == round($value))
{
    //no decimal, go ahead and truncate.
}
Run Code Online (Sandbox Code Playgroud)

此示例将值与自身进行比较,舍入为0位小数.如果四舍五入的值与该值相同,则您没有小数部分.干净利落.


Kin*_*nch 10

一个小技巧与PHP类型杂耍能力

if ($a == (int) $a) {
    // $a has a zero fraction value
}
Run Code Online (Sandbox Code Playgroud)