首页 > 解决方案 > 如果十进制数以0结尾,如何检查/捕获

问题描述

我有一个小数点后 2 位的值。现在我试图捕捉以 0 结尾的那些(例如:123.50)。

我能够捕捉到.00以不同数字结尾的那些,例如.23/.88等。

这是我的代码:

if(fmod($totalAmountToPay, 1) !== 0.00){ 
    //traps ending in .23 / .88
}
else {
    //traps ending in .00
}

但是这次我需要捕获以.50/ .30/结尾的那些.60

标签: php

解决方案


用于sprintf()格式化为一位小数(即十分位),然后将其与原始数字进行比较。如果它们相同,则意味着原始数字只有十分之一(即以 结尾.?0),否则它有百分之一(或更小)。

if ( $n == sprintf("%0.1f", $n ) ) {
    // Ends with .?0
} else {
    // Does not end with .?0
}

推荐阅读