$val 代表我的 sql 中的 1,949.58
$sold = 50;
if ($val>$sold){
echo "true";
}
else
{
echo "false";
}
我弄错了。不知何故,50 比 1,949.58 大,这是因为“,”符号。我需要一些关于如何管理这项权利的建议。谢谢
$val
被 php 解释为一个字符串。在进行比较时,它会进行字符串比较,因此您不会得到预期的结果。
您需要强制它们为浮点类型。查看http://php.net/manual/en/function.floatval.php 特别是对该函数的注释。
像这样的东西应该工作:
function floatvalue($value) {
return floatval(preg_replace('#^([-]*[0-9\.,\' ]+?)((\.|,){1}([0-9-]{1,2}))*$#e', "str_replace(array('.', ',', \"'\", ' '), '', '\\1') . '.\\4'", $value));
}
您需要将这些值转换为浮点数而不是字符串。现在你正在做字符串比较而不是数字比较。下面将这些字符串转换为浮点值。
$val = parseFloat('1,949.58'.replace(/\,/g,""))
$sold = parseFloat('50')
.replace 在解析为浮点数之前从原始字符串中删除“,”。