php代码中对数字与小数处理常见的几种方式

编辑:管理员 发布时间:2024-11-15 23:25:03153

在使用php进行一些运算时,有时候运算后是无尽循环或不循环小数,影响运算结果的显示或计算,那么该怎样对这些小数进行一些简单的处理呢?

1、直接转换为整数,放弃小数点后的数值

<?php

$xiaoshu ="3.1875";

$fistcx=strpos($xiaoshu,".");

echo substr($str,0,$fistcx);

?>

首先假设一个小数为3.1875,首先通过strpos函数查找"."号出现的第一次位置,然后使用substr函数,从第一位开始截取到.号出现的位置就可以实现获得小数的整数部分.

<?php

$xiaoshu ="3.1875";

echo intval($xiaoshu);

?>

php中的intval函数可以直接对小数进行取整.

2、向上取整

<?php

$xiaoshu2 ="1.1379";

$xiaoshu2 ="1.1579";

echo ceil($xiaoshu2);

?>

ceil函数可以向上进行取整,即有小数直接整数部分结果+1.

3、向下的方式取整

<?php

$xiaoshu3 ="5.135";

$xiaoshu3 ="6.14766";

echo floor($xiaoshu3);

?>

使用floor函数所得到的数值,正整数部分无限向0,即整数加1后减1,负数部分无限小.

4、四舍五入

<?php

$xiaoshu4 ="6.133553";

$xiaoshu4 ="3.7682";

echo round($xiaoshu4,2);

echo sprintf("%.2f",$xiaoshu4);

echo number_format($xiaoshu4, 2); //10.46

?>

round函数第一个参数为数值,第二个为位数.或者sprintf直接格式化字符串,千位分组来格式化数字的函数

5、保留指定位数的小数

<?php

$weishu="3";

$xyqzxs="87.12137";

$cws=pow(10,$weishu);

echo intval(($xyqzxs*$cws))/$cws;

echo ceil(($xyqzxs*$cws))/$cws;

echo floor(($xyqzxs*$cws))/$cws;

?>

首先定义一个变量存储需要求得小数的位数,这里设置为3,然后定义小数的准确数值87.12137,通过pow函数求得10的N位数次方的值,用于将小数转为整数去除指定位数之后的小数,从而保留需要保留位数的小数.

结合以上对整数部分的处理方法,分别使用intval()、ceil()、floor()三个对整数处理的函数处理得到整数部分,然后再除以之前用于保留小数的10的N次方换算值,再次将整数部分变为小数,我们就能够得到指定位数的小数或向上取小数、向下取小数三种处理不同的答案.

TAGS: php 文字处理
热门文章
最新文章

热门标签

数学计算路径命令行表单字符符号nginxcookiejavapython数组文字处理小数服务器管理apache图片处理