编辑: 转换为使用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');
}
答案 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;
}
}