① php取整的几种方式
有三种方式,分别是floor()(舍去小数部分,只取整数),ceil()(进一取整,只要有小数部分,直接加一),round()(四舍五入取整)。。。
② php怎么保存小数点后两位并且四舍五入
php保留两位小数并且四舍五入
代码如下:
$num = 123213.666666;
echo sprintf("%.2f", $num);
php保留两位小数并且不四舍五入
代码如下:
$num = 123213.666666;
echo sprintf("%.2f",substr(sprintf("%.3f", $num), 0, -2));
php进一法取整
代码如下:
echo ceil(4.3); // 5
echo ceil(9.999); // 10
php舍去法,取整数
代码如下:
echo floor(4.3); // 4
echo floor(9.999); // 9
③ PHP怎么定义保留2位小数的变量
在php中要保留两位小数的方法有很多种办法,有如:printf,substr,number_format,round等等方法
方法一
sprintf()函数 ,sprintf() 函数把格式化的字符串写写入一个变量中
<?php
$number=123;
$txt=sprintf("%f",$number);
echo$txt;
?>
输出:
123.000000
方法二substr()函数
$num=123213.666666;
echosprintf("%.2f",substr(sprintf("%.3f",$num),0,-2));
方法三 number_format()函数
$number=1234.5678;
$nombre_format_francais=number_format($number,2,',','');//1234,57
$english_format_number=number_format($number,2,'.','');//1234.57(我一般用这个)
方法四 round 函数,round() 函数对浮点数进行四舍五入。
<?php
echo(round(0.60));
echo(round(0.50));
echo(round(0.49));
echo(round(-4.40));
echo(round(-4.60));
?>
输出:
1
1
0
-4
-5
如果要保留小数,后来参数根保留小数位数即可。
$number=1234.5678;
echoround($number,2);//1234.57
④ php 的位运算总结
php的位运算很少会用到,但是用处很大,
在有些算法中会用到,在权限管理中也会经常用到,
对于理解计算机的世界也会有一定的帮助,所以得把这些重要但不常用的东西总结一下记录一下。
提到位运算,避不开的是二进制。
因为位运算是直接在内存做操作和运算,相较与直接拿两个变量做运算符肯定是更快的。
很多地方把二进制这玩意说得很晦涩,现在来以最简单的方式来总结一下,当然只算 int 范围内的数算了,超过了这个范畴程序员还不如拿这时间去学点别的。
说完以上总结,再来解释下什么是二进制,网上大把,
但只要记住,int范围内的数也就是我们大部分需要用到的数,都可以用二进制来表示。
我们生活中用到的计数方式为十进制,由个数位满10进1,
然后再开始重新计算,等十位满9再加一时,百位加一,十位归零。
二进制则只有两个数字来表示就是0和1,满2进1。
由32个位组成,虽然只有32个位但已满足了我们正常的需求了
比如说1转换为2进制原码,由于1是正数所以符号位为0,
原码反码补码都一个样。
1的原码:00000000 00000000 00000000 00000001
因手懒,太多0太丑用+拼接,Ɔ* 8'代表8个0
2的原码:0* 8 0* 8 0* 8 0* 6 + 1 0,既然是二进制,
满2就得进1,最低位归0,向前加一。
再来解释下负数的原码反码和补码,就开始讲php的位运算了。
二进制复习完毕。下面开始讲讲php的位运算。
php一共有六种位运算,一种一种来讲。
可以这么理解,两个数的补码放在一起比较每个位(一共32个位),
可以得出另外一个数,这个数字的组成由比较的两位数字生成,
如果两个数的每个位数上的数字都等于1的话,
那得到的那个数的补码的同位为1,否则为0。
听着绕口,其实很简单,觉得还是比官网上的更容易让新手看懂
下面举例子:
首先来求-1和7的补码。7的原码就是补码。
两个补码都有了下面开始运算:
按照上面的说法, 每个位都有一样则 $a 的同等位则为1,刚好-1的补码和7的补码前面都不一样,就最后三位一样,所以刚好求得的 $a 的补码的最后三位是1而其他的都是0 ,刚好这个补码为正数,正好就是7。
其实就是和按位与相反,只要有1个为1,那就为1,如果都不为1,那就为0。
$a = -1|7 ;得出来的 $a 补码为32个1,但此时不能说 $a 就是-1,因为这只是补码,要转成原码再转成十进制数,补码-1,然后再翻转,再转出来,得到的其实也还是-1。
就是将这个数的补码全部翻转过来,包括符号位,0变1,1变0
取反的结果一定是整数变负数负数变正数,取正数的反时,
记得一定要从补码一步步转到原码再转成十进制数才是答案。
两个数的补码比较,同等位上的两数比较
,不一样时,则答案的补码的同位则为1,否则为0。
往左移符号位被挤走右边0补充,往右移动,符号位不动,
高位以符号位补充。二进制世界里往左移动其实是相当于乘以了2,
右移相当于除以了2。
不吹牛逼的说,这应该是互联网上最容易理解的php位运算的解释和二进制的解释了。
原文链接: php的位运算总结-PHP
⑤ PHP 如何给整数后2位加一个小数点
解决思路如下(具体过程在代码中有注释):
<?php⑥ php取整的几种方式
php最常用的是下面两个函数:
floor(),向下取整,舍去所有小数位,整数位不变。
ceil(),向上取整,小数全部舍去,整数位加一。
⑦ php 字符串中取整数 如: $str='12|字符串'; 从$str中去前面的12出来.
<?php
$str='12|字符串';
echo (int)$str;
//输出 12
如果你喜欢正则来解的
<?php
$str='12|字符串';
echo preg_replace('/(\d+).*/','\\1',$str);
⑧ thinkPHP 如何在整形后面加两位小数
PHP 中sprintf函数可以将整数格式化为浮点格式
<?php
$num = 3;
$res = sprintf("%.2f" , $num);
echo $res;//结果为3.00
//如果你需要随机的两位小数 就随机数好了
$num = 3;
$res = rand(10 , 99);
echo $num . '.' . $res;
⑨ php中整形转换为浮点型,并精确的小数点后两位
PHP 中sprintf函数可以将整数格式化为浮点格式。比如格式化参数:%nf;其中,n 表示小数点后的位数。比如:
<?php
$num=9.8;
$res=sprintf("%.2f", $num);
//输出:9.80
?>