将数字转换为字符串,然后在PHP中进行比较

时间:2015-06-24 19:43:41

标签: php regex

编辑: 转换为使用round返回浮点数

我正在转换使用舍入函数将数字舍入为2位小数

我的问题是关于以下这行代码:

它们可能是舍入错误还是意外行为,可能会导致这种情况在真实时不应该出现?

if ($cc_amount > $total)

完整代码:

    $cc_amount = round($this->sale_lib->get_payment_total('credit'),2);
    $total = round($this->sale_lib->get_total(),2);

    //Since they are floats could there be rounding errors?
    if ($cc_amount > $total)
    {
        $this->_reload(array('error' => 'Credit card payment is greater than total');
    }

1 个答案:

答案 0 :(得分:0)

对于你正在做的事情,这有点令人困惑。

比较字符串时,它可以抓取每个字符的ascii代码,并从最左边的字符到右边一次比较一个字符,这样就像823> 2015年。

如果我要进行比较,我会将它们保存为数字格式并计算每个给定的数量。

function to_decimals($number, $decimals = 2)
{
    if (is_numeric($number))
    {
        $updown = (10^$decimals)
        return round(($number * $updown))/$updown;
    }
    else
    {
        return -999999;
    }
}