最新消息:红方科技年末特惠:.com域名55元、云虚机五折优惠,买3年送2年,更有智能建站套餐等你来取!

PHP和MYSQL小数点精度问题

Linux yinhexi 2276浏览 0评论

PHP

php保留两位小数并且四舍五入

$num = 123213.666666;
echo sprintf(“%.2f”, $num);

 

php保留两位小数并且不四舍五入

$num = 123213.666666;
echo sprintf(“%.2f”,substr(sprintf(“%.3f”, $num), 0, -2));

 

php进一法取整

echo ceil(4.3);    // 5
echo ceil(9.999);  // 10

 

php舍去法,取整数

echo floor(4.3);   // 4
echo floor(9.999); // 9

 

MySQL

  SELECT 7185521/7185522

得出的结果是1,那么如何让他得到0.999这样的结果呢,后来查google得知可以利用TRUNCATE()函数来解决这样类似大数据除法的精度问题。

  • TRUNCATE(X,D)

返回被舍去至小数点后D位的数字X。若D 的值为 0, 则结果不带有小数点或不带有小数部分。可以将D设为负数,若要截去(归零) X小数点左起第D位开始后面所有低位的值.

  SELECT TRUNCATE(7185521/7185522,4)

例如这样就会得出“0.9999”这样的结果

转载请注明:红方博客 » PHP和MYSQL小数点精度问题