PHP中实现四舍五入的方法有哪些 ?
PHP

PHP中实现四舍五入的方法有哪些 ?

quhe.net
2017-09-03 / 0 评论 / 345 阅读 / 正在检测是否收录...

在PHP开发中,有时候我们会遇到将数据进行四舍五入的运算情况,下面分享用PHP实现数据四舍五入的3种方法,分别通过number_format()函数、round()函数和sprintf()格式化输出的方法实现四舍五入。

1、number_format() 方法实现四舍五入
number_format() 函数通过千位分组来格式化数字。

//定义一个float型的变量
$number = 1234.5678;

//English Notation (defult)
$number_format_english = number_format($number);
//1,235

$number_format_english = number_format($number, 2, '.', '');
//1234.57


//French Notation
$number_format_francais = number_format($number, 2, ',', '');
//1234,57

$number_format_francais = number_format($number, 3, ',', '');
//1234,568

echo $number_format_english;
//1234.57

echo $number_format_francais;
//1234,568

2、round()方法实现四舍五入
round() 函数对浮点数进行四舍五入。

//定义一个float型的变量
$number = 1234.5678;

//不保留小数
echo round($number);
//1235

//保留两位小数
echo round($number,2);
//1234.57

echo "";
$number = 12345678;

//在千分位进行四舍五入
echo round($number,-4);
//12350000

3、sprintf() 格式化输出实现四舍五入
字符串格式化命令,主要功能是把格式化的数据写入某个字符串中。sprintf 是个变参函数。

//定义一个正整数
$n =  43951789;

//定义一个负整数
$u = -43951789;

// ASCII 65 is 'A'
$c = 65;

printf("%%b = '%b'\n", $n);
//%b = '10100111101010011010101101'

printf("%%c = '%c'\n", $c);
//%c = 'A'

printf("%%d = '%d'\n", $n);
//%d = '43951789'

printf("%%e = '%e'\n", $n);
//%e = '4.395179e+7'

printf("%%u = '%u'\n", $n);
//%u = '43951789'

printf("%%u = '%u'\n", $u);
//%u = '4251015507'

printf("%%f = '%f'\n", $n);
//%f = '43951789.000000'

printf("%%o = '%o'\n", $n);
//%o = '247523255'

printf("%%s = '%s'\n", $n);
//%s = '43951789'

printf("%%x = '%x'\n", $n);
//%x = '29ea6ad'

printf("%%X = '%X'\n", $n);
//%X = '29EA6AD'

printf("%%+d = '%+d'\n", $n);
//%+d = '+43951789'

printf("%%+d = '%+d'\n", $u);
//%+d = '-43951789'
指定小数位数四舍五入的同时补0

最近项目遇到问题了.用方法2对于四舍五入后的补零处理的不好

比如

$num =1.696;  
echo round($num,2);
//结果1.7

可以看出上面没有对数字进行补零

于是终极办法出现了

echo sprintf("%.2f", round($num,2));
//输出 1.70
17

评论 (0)

取消