MySQL数据导入芒果数据库。
price float(15,2) in mysql, mongo is not float(15,2).我想确定一个变量$price有两个小数位。
例如:100.00是对的,100或100.0是错的。
eg.1
$price = 100.00;$price有两个小数点,是的。
eg.2
$price = 100.0;$price没有两个小数点,这是错误的。
发布于 2014-11-16 22:40:54
每个人都在为浮点数在内部表示法中没有小数位这一事实而起舞。也就是说,在浮点数100中,== 100.0 == 100.00 == 100.000并且都以相同的数字表示,有效地100并且以这种方式存储。
此示例中的小数位数只有在数字表示为字符串时才具有上下文。在这种情况下,任何计算尾随小数点数的字符串函数都可以用于检查。
发布于 2014-11-07 02:06:42
我喜欢使用正则表达式来做这些事情。
function validateTwoDecimals($number)
{
if(preg_match('/^[0-9]+\.[0-9]{2}$/', $number))
return true;
else
return false;
}(感谢弗雷德二世的更正)
发布于 2014-11-14 17:32:44
number_format($price, $numberOfDecimalDigits) === $price;或
strrpos($price, '.') === strlen($price) - 1 - $numberOfDecimalDigits;琐事:$price不应该被称为“浮动变量”。这是一个恰好表示浮点值的字符串。100.00作为浮点数有零小数位数,100.00 === 100有浮点数:
$price = 100.00;
echo $price; // output: 100
$price2 = (float)100;
echo $price === $price2; // ouput: 1https://stackoverflow.com/questions/26792784
复制相似问题