(⽅法总结)PHP如何格式化⼩数,保留⼩数点后⼏位
PHP如何保留⼩数点后⼏位
1. round()
该函数可以按照指定的⼩数位数进⾏四舍五⼊运算的结果(并不会严格按指定位数输出)。除数值外,也可对⽇期进⾏舍⼊运算。返回的是 float 类型
// round(要舍⼊的数, 规定⼩数点后的尾数可以为负数, 舍⼊模式的常量);
round(100.78888888888,8);//  100.78888889
round(100.899999999999,8);//  100.9
round(1985.87,-1);//  1990.0
//默认,遇到5向上取整
round(100.555,2,PHP_ROUND_HALF_UP);//  100.56
//遇到5向下取整,
round(100.555,2,PHP_ROUND_HALF_DOWN);//  100.55
// ceil()函数向上舍⼊为最接近的整数
// floor()函数向下舍⼊为最接近的整数
2. number_format()
该函数作⽤是对数字进⾏格式化可以按照指定⼩数位数输出,会对结果进⾏四舍五⼊运算。
返回的是string 类型
//  number_format(要格式化的数字, 保留⼏位⼩数, 规定⽤作⼩数点的字符串,千位分隔符的字符串);
number_format(100.78888888888,8);//  "100.78888889"
number_format(100.899999999999,8);// "100.90000000"
number_format(10000000.7888888,5,'*','/');// "10/000/000*78889"
3.bcadd()
该函数⽤于价格累加,可以返回指定指定⼩数位数输出。值得⼀提的是,函数不会对结果进⾏四舍五⼊运算。
返回的是string 类型
//  bcadd(被加数, 加数, 保留⼏位⼩数);
bcadd(9.9999999999,0,8);//  "9.99999999"
bcadd(9.9999999999,1,8);// "10.99999999"
4.sprintf()
sprintf() 函数的主要功能是把百分号(%)符号替换成⼀个作为参数进⾏传递的变量.
我们也可以⽤sprintf() 函数对⼩数格式化,它会对结果进⾏四舍五⼊运算。
返回的也是字符串
//  sprintf(规定字符串以及如何格式化其中的变量, 规定插到 format 字符串中第⼀个 % 符号处的参数);
//保留2位⼩数
sprintf("%.2f",100.999999);// "101.00"
//替换
$number=10;
$str="CSDN";
$txt=sprintf("%s今天有%u万的访问量",$str,$number);// "CSDN今天有10万的访问量"
替代⼩数⽅案:
其实我们可以完全可以使⽤整数来当做⼩数处理,⽐如⾦额:
¥100.9 我们存⼊数据库可以存⼊10000,取出来的时候 除以100即可,这样会避免掉⼀些⼩数对我们实际代码中的问题。
扩展PHP 的 bcmath:
//bcsub(被减数,减数,保留⼏位⼩数);
bcsub(99.99,11.11,2);//  "88.88"
//bcmul(被乘数,乘数,保留⼏位⼩数);
bcmul(11.11,11.11,2);// "123.43"
//bcdiv(被除数,除数,保留⼏位⼩数);
bcdiv(100,3,2);// "33.33"
//bcpow(数字,次⽅,保留⼏位⼩数);
bcpow(2.1,3,2);// "9.26"phpjson格式化输出
//bcsqrt(被开⽅数,保留⼏位⼩数);  此函数开平⽅
bcsqrt(3,5)// "1.73205"
//bccomp('数字','数字','精确位数') — ⽐较两个任意精度的数字bccomp('1','2');// -1 :前⾯的数⼩于后⾯的数
bccomp('1.00001','1',3);// 0 :前⾯的数等于后⾯的数bccomp('1.00001','1',5);// 1 :前⾯的数⼤于后⾯的数

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。