在开发过程中,我们经常需要处理一些金额数值,一般将其格式化为保留两位小数点。 在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对其进行数学运算的时候就会报错。
---------------------
作者:Levy_96
来源:CSDN
原文:https://blog.csdn.net/Levy_96/article/details/52658463
版权声明:本文为博主原创文章,转载请附上博文链接!
PHP的数据类型转换属于强制转换,允许转换的PHP数据类型有: (int)、(integer):转换成整形 (float)、(double)、(real):转换成浮点型 (string):转换成字符串 (bool)、(boolean):转换成布尔类型 (array):转换成数组 (object):转换成对象 PHP数据类型有三种转换方式: 在要转换的变量之前加上用括号括起来的目标类型 使用3个具体类型的转换函数,intval()、floatval()、strval() 使用通用类型转换函数settype(mixed var,string type) 第一种转换方式: (int) (bool) (float) (string) (array) (object)
<?php $num1=3.14; $num2=(int)$num1; var_dump($num1); //输出float(3.14) var_dump($num2); //输出int(3) ?> 第二种转换方式: intval() floatval() strval() <?php $str="123.9abc"; $int=intval($str); //转换后数值:123 $float=floatval($str); //转换后数值:123.9 $str=strval($float); //转换后字符串:"123.9" ?> 第三种转换方式: settype();
<?php $num4=12.8; $flg=settype($num4,"int"); var_dump($flg); //输出bool(true) var_dump($num4); //输出int(12) ?> 补充: 判断字符串全部由数字组成 <?php $str = "123" if(ereg('^[0-9]+$', $str)) { // true } ?>
ereg()函数用指定的模式搜索一个字符串中指定的字符串,如果匹配成功返回true,否则,则返回false。搜索字母的字符是大小写敏感的。
int ereg(string pattern, string originalstring, [array regs]);
例,$email_id = "admin@tutorialspoint.com";
$retval = ereg("(.)(com$)", $email_id);
ereg()限制password的格式,只能是数字或者字母。但ereg()函数存在NULL截断漏洞,可以使用%00绕过验证。
这里ereg有两个漏洞:
①%00截断及遇到%00则默认为字符串的结束
②当ntf为数组时它的返回值不是FALSE
另外提示,科学计数法的表示是
1e9=1000000000
e一定是小写
---------------------
作者:qq_25987491
来源:CSDN
原文:https://blog.csdn.net/qq_25987491/article/details/79952393
版权声明:本文为博主原创文章,转载请附上博文链接!