PHP关于金额数值的处理,number_format()与round()的使用
来源:互联网 发布:项目管理流程软件 编辑:程序博客网 时间:2024/06/05 15:37
在开发过程中,我们经常需要处理一些金额数值,一般将其格式化为保留两位小数点。 在PHP中,有number_format(), round()这么两个函数可以使用。
最直接的是round()这个函数,其作用是对浮点数进行四舍五入。
round(x, prec), 第一个参数是需要进行四舍五入的数值,第二个参数是要保留的小数点位数,例如round(3.158, 2)的结果是3.16, 这里需要注意的是参数x不能是'12,300.2'这样的字符串。
这里要介绍的另一个函数是number_format(),其作用是对数字进行格式化,注意这里的格式化是千位分组,返回的结果是字符串。
number_format(number, decimals, decimalpoint, separator),第一个参数是需要格式化的数值,后三个参数都为可选,依次是小数位数、用作小数点的字符串、用作千分位的字符串。
第一次使用这个函数来处理金额数值的时候,我是使用的number_format(number, 2),目的是要将数值格式化为带两位小数的,测试结果也是满足我的需要。但是,当number的数值变为5000的时候,就报错了。原因在于number_format(5000, 2)的返回结果是‘5,000.00’,显然是字符串,将数值传递至前端,js对其进行数学运算的时候就会报错。
function test(){ echo number_format(5000, 2); //5,000.00}虽然在php中对这个函数的返回结果进行数学运算不会报错,但是其结果并不是我们想要的数值,如下所示:
function test(){ echo number_format(5000, 2) + 2; //7 echo number_format(5000, 2) * 2; //10}
也就是说'5,000.00'会被当成5来计算,因此我们在使用number_format()的时候需要规避这样的错误,需要对千分位的符号进行规定,也就是传入第4个参数。
function test(){ echo number_format(5000, 2, '.', ''); //5000.00}将千分位字符设置为'',这样输出的结果就是我们想得到的5000.00了,虽然其结果实际上还是字符串,但是在进行数学运算的时候既不会报错也不会出现错误的计算结果。
0 0
- PHP关于金额数值的处理,number_format()与round()的使用
- number_format 与 round 的区别
- PHP关于数据的舍入关键字归类:round() ceil() floor() number_format()
- php中number_format的学习使用
- 关于number_format()的一些使用心得
- Js 和 PHP 中保留小数点后X位数的方法 toFixed、round、number_format、sprintf
- 关于新用户第一次赠送金额的处理
- 有意思的number_format
- 数值函数round函数的使用
- 模仿php number_format函数的c# 价格转换函数
- 关于php的round问题
- mysql 数值处理函数floor与round
- mysql 数值处理函数 floor与round
- 数值转换为金额格式的函数
- 关于php数值类型的一个疑问
- number_format需要注意的地方
- php保留小数位,和四舍五入(sprintf, number_format, round
- 关于php的验证码数值与session不匹配的问题
- HTML中>的含义
- 函数调用过程(详解)
- 十六进制转十进制
- WTL Hello World
- java运行jar类、scala运行jar类
- PHP关于金额数值的处理,number_format()与round()的使用
- 【51Nod算法马拉松18 A】染色问题
- java基础学习总结--操作符
- AFNetworking 3.0 源码解析之Reachability
- Xcode8上传应用包成功后,iTunes里不显示构建版本
- 移动端WebApp自适应实践
- 电路交换、报文交换和分组交换
- 将binaryproto文件转换为npy文件 代码
- 关于activity的直接传递数据【A向B传递数据】