$ value表示来自我的sql
的1,949.58 $sold = 50;
if ($val>$sold){
echo "true";
}
else
{
echo "false";
}
我弄错了。不知何故50大于1,949.58这是因为','符号。我需要一些关于如何正确管理的建议。 THX
答案 0 :(得分:0)
$val
解释为字符串。在进行比较时,它正在进行字符串比较,因此您无法获得预期的结果。
您需要强制它们成为浮点类型。请看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));
}
答案 1 :(得分:0)
您需要将这些值转换为浮点数而不是字符串。现在你正在进行字符串比较而不是数字比较。以下内容将这些字符串转换为浮动值。
$val = parseFloat('1,949.58'.replace(/\,/g,""))
$sold = parseFloat('50')
.replace在解析为Float之前从原始字符串中删除“,”。