首页 > 编程技术 > php

round() 函数对浮点数进行四舍五入

发布时间:2016-11-25 16:49

语法
round(x,prec)参数 描述
x 可选。规定要舍入的数字。
prec 可选。规定小数点后的位数。

说明
返回将 x 根据指定精度 prec (十进制小数点后数字的数目)进行四舍五入的结果。prec 也可以是负数或零(默认值)。
提示和注释
注释:php教程 默认不能正确处理类似 "12,300.2" 的字符串。

注释:prec 参数是在 php 4 中被引入的。。

*/
echo round(3.4);         //输出3
echo "<br>";
echo round(3.5);         //输出4
echo "<br>";
echo round(3.6);         //输出4
echo "<br>";
echo round(3.6,0);         //输出4
echo "<br>";
echo round(1.95583,2);        //输出1.96
echo "<br>";
echo round(1241757,-3);        //输出1242000
echo "<br>";
echo round(4.045,2);         //输出4.05
echo "<br>";
echo round(4.055,2);         //输出4.06

//使用stdround函数代替php的round函数
?>

<?php

    function   stdround($num,   $d=0)
    {
      return   round($num   +   0.0001   /   pow(10,   $d),   $d);
    }  
       
echo   "round(1.005,2)= ".round(1.005,2). "n ";
echo   "round(1.015,2)= ".round(1.015,2). "n ";
echo   "round(1.025,2)= ".round(1.025,2). "n ";
echo   "round(1.035,2)= ".round(1.035,2). "n ";
echo   "round(1.045,2)= ".round(1.045,2). "n ";
echo   "round(1.055,2)= ".round(1.055,2). "n ";
echo   "round(1.065,2)= ".round(1.065,2). "n ";
echo   "round(1.075,2)= ".round(1.075,2). "n ";
echo   "round(1.085,2)= ".round(1.085,2). "n ";
echo   "round(1.095,2)= ".round(1.095,2). "n ";

echo   "stdround(1.005,2)= ".stdround(1.005,2). "n ";
echo   "stdround(1.015,2)= ".stdround(1.015,2). "n ";
echo   "stdround(1.025,2)= ".stdround(1.025,2). "n ";
echo   "stdround(1.035,2)= ".stdround(1.035,2). "n ";
echo   "stdround(1.045,2)= ".stdround(1.045,2). "n ";
echo   "stdround(1.055,2)= ".stdround(1.055,2). "n ";
echo   "stdround(1.065,2)= ".stdround(1.065,2). "n ";
echo   "stdround(1.075,2)= ".stdround(1.075,2). "n ";
echo   "stdround(1.085,2)= ".stdround(1.085,2). "n ";
echo   "stdround(1.095,2)= ".stdround(1.095,2). "n ";

$m=0.000000000000001;
echo   "n ";
echo   "round(1.005+{$m},2)= ".round(1.005+$m,2). "n ";
echo   "round(1.015+{$m},2)= ".round(1.015+$m,2). "n ";
echo   "round(1.025+{$m},2)= ".round(1.025+$m,2). "n ";
echo   "round(1.035+{$m},2)= ".round(1.035+$m,2). "n ";
echo   "round(1.045+{$m},2)= ".round(1.045+$m,2). "n ";
echo   "round(1.055+{$m},2)= ".round(1.055+$m,2). "n ";
echo   "round(1.065+{$m},2)= ".round(1.065+$m,2). "n ";
echo   "round(1.075+{$m},2)= ".round(1.075+$m,2). "n ";
echo   "round(1.085+{$m},2)= ".round(1.085+$m,2). "n ";
echo   "round(1.095+{$m},2)= ".round(1.095+$m,2). "n ";


echo   "round(1.005,2)= ".round(1.005,2). "n ";
echo   "round(1.015,2)= ".round(1.015,2). "n ";
echo   "round(1.025,2)= ".round(1.025,2). "n ";
echo   "round(1.035,2)= ".round(1.035,2). "n ";
echo   "round(1.045,2)= ".round(1.045,2). "n ";
echo   "round(1.055,2)= ".round(1.055,2). "n ";
echo   "round(1.065,2)= ".round(1.065,2). "n ";
echo   "round(1.075,2)= ".round(1.075,2). "n ";
echo   "round(1.085,2)= ".round(1.085,2). "n ";
echo   "round(1.095,2)= ".round(1.095,2). "n ";

定义和用法
abs() 函数返回一个数的绝对值。

语法
abs(x)
*/
$abs=abs(-3.2);      //$abs=3.2
$abs2=abs(5);       //$abs2=5
$abs3=abs(-5);       //$abs3=5

/*

定义和用法
ceil() 函数向上舍入为最接近的整数。

语法
ceil(x)参数 描述
x 必需。一个数。

说明
返回不小于 x 的下一个整数,x 如果有小数部分则进一位。ceil() 返回的类型仍然是 float,因为 float 值的范围通常比 integer 要大。

*/


echo ceil(5);         //5
echo "<br>";
echo ceil(3.3);         //4
echo "<br>";
echo ceil(6.999);        //7

/*
floor() 函数向下舍入为最接近的整数。

语法
floor(x)参数 描述
x 必需。一个数。

说明
返回不大于 x 的下一个整数,将 x 的小数部分舍去取整。floor() 返回的类型仍然是 float,因为 float 值的范围通常比 integer 要大。

*/

echo floor(4);        //4
echo "<br>";
echo floor(3.3);        //3
echo "<br>";
echo floor(6.999);       //6

/*
定义和用法
fmod() 函数返回除法的浮点数余数。

语法
fmod(x,y)参数 描述
x 必需。一个数。
y 必需。一个数。

说明
返回被除数(x)除以除数(y)所得的浮点数余数。余数(r)的定义是:x = i * y + r,其中 i 是整数。如果 y 是非零值,则 r 和 x 的符号相同并且其数量值小于 y 。

*/

$x=4.7;            //定义数值1
$y=1.3;            //定义数值2
$r=fmod($x,$y);          //进行求余操作
echo $x."除以".$y."的浮点数余数为:".$r;      //输出结果

/*
log10() 以 10 为底的对数。

语法
log10(x)参数 描述
x 必需。一个数。

说明
返回参数 x 以 10 为底的对数。

*/

$num1=100;
$num2=1000;
$num3=3;
$result1=log10($num1);
$result2=log10($num2);
$result3=log10($num3);
echo "$num1以10为底的对数为$result1";
echo "<br>";
echo "$num2以10为底的对数为$result2";
echo "<br>";
echo "$num3以10为底的对数为$result3";
echo "<br>";

/*
log() 返回自然对数。

语法
log(x,base)参数 描述
x 必需。一个数。
base 可选。如果规定了该参数,则返回 logbasex。

说明
如果指定了可选的参数 base,log() 返回 logbasex ,否则 log() 返回参数 x 的自然对数。


*/

echo log(2.7183);       //返回指定数值的自然对数
echo "<br/>";
echo log(2);        //返回指定数值的自然对数
echo "<br/>";
echo log(1);        //返回指定数值的自然对数
echo "<br/>";
echo log(0);        //返回指定数值的自然对数
echo "<br/>";
echo log(-1);        //返回指定数值的自然对数

//

echo sqrt(9);         //输出3
echo "<br>";
echo sqrt(10);         //3.16227766...

//

var_dump(pow(2, 8));       //输出256
echo "<br>";
echo pow(-1,20);        //输出1
echo "<br>";
echo pow(0,0);         //输出1
echo "<br>";
echo pow(-1, 4.5);        //返回错误

//发送头文件
header("content-type: image/png");
//创建真彩色图像
$im=imagecreatetruecolor(100,50);
//定义黑色
$black=imagecolorallocate($im,0,0,0);
//定义白色
$white=imagecolorallocate($im,255,255,255);
//画一矩形并填充
imagefilledrectangle($im,0,0,99,49, $white);
//定义字体
imagestring($im,2,0,0,"hello",$black);
//输出图像
imagepng($im);
/*
执行该代码将生成一幅png图像,并在图像上显示hello。

语法: int imagefilledrectangle(int im, int x1, int y1, int x2, int y2, int col);

返回值: 整数

函数种类: 图形处理


 
 
内容说明


本函数将图片的封闭长方形区域着色。参数 x1、y1 及 x2、y2 分别为矩形对角线的坐标。参数 col 表示欲涂上的颜色。

array imagettftext ( resource image, int size, int angle, int x, int y, int color, string fontfile, string text)


imagettftext() 将字符串 text 画到 image 所代表的图像上,从坐标 x,y(左上角为 0, 0)开始,角度为 angle,颜色为 color,使用 fontfile 所指定的 truetype 字体文件。根据 php教程 所使用的 gd 库的不同,如果 fontfile 没有以 '/'开头,则 '.ttf' 将被加到文件名之后并且会搜索库定义字体路径。


*/
//发送头文件
header("content-type: image/png");
//创建图像
$im=imagecreatetruecolor(400, 30);
//定义颜色
$white=imagecolorallocate($im,255,255,255);
$grey=imagecolorallocate($im,128,128,128);
$black=imagecolorallocate($im,0,0,0);
imagefilledrectangle($im, 0, 0, 399, 29, $white);
//定义文本
$text='hello world!';
//这里是字体文件的路径
$font='arial.ttf';
//为文字添加阴影,即为灰色画出文本
imagettftext($im,20,0,13,23,$grey,$font,$text);
//添加文本,即用黑色画出文本
imagettftext($im,20,0,10,20,$black,$font,$text);
//输出png图像
imagepng($im);
imagedestroy($im);
/*
本函数同时需要 gd 库和 freetype 库。
*/

$values=array(
  40,50,         //第一个顶点的坐标
  20,240,         //第一个顶点的坐标
  60,60,         //第一个顶点的坐标
  240,20,         //第一个顶点的坐标
  50,40,         //第一个顶点的坐标
  10,10         //第一个顶点的坐标
);
$im=imagecreatetruecolor(250,250);   //创建图像
$bg=imagecolorallocate($im,200,200,200);  //定义灰色背景
$yellow=imagecolorallocate($im,255,255,0);  //定义黄色前景
imagefilledpolygon($im,$values,6,$yellow);  //画出多边形
header('content-type: image/png');
//判断gif函数是否存在
if(function_exists("imagegif"))
{
  //如果存在,以gif格式输出
  header("content-type: image/gif");
  imagegif($im);
}
//判断jpeg函数是否存在
elseif(function_exists("imagejpeg"))
{
  //如果存在,以jpg格式输出
  header("content-type: image/jpeg");
  imagejpeg($im, "", 0.5);
}
//判断png函数是否存在
elseif (function_exists("imagepng"))
{
  //如果存在,以png格式输出
  header("content-type: image/png");
  imagepng($im);
}
//判断wbmp函数是否存在
elseif (function_exists("imagewbmp"))
{
  //如果存在,以bmp格式输出
  header("content-type: image/vnd.wap.wbmp");
  /*
  header() 函数向客户端发送原始的 http 报头。

认识到一点很重要,即必须在任何实际的输出被发送之前调用 header() 函数(在 php 4 以及更高的版本中,您可以使用输出缓存来解决此问题):


*/
  imagewbmp($im);
}
else
{
  //如果都不支持,输出内容
  die("no image support in this php server");
}
/*
该代码执行结果与代码22-25类似。
所不同的是,该代码判断多种图像支持,然后用相应的格式输出图像

语法: int imagegif(int im, string [filename]);

返回值: 整数

函数种类: 图形处理


 
 
内容说明


本函数用来建立一张 gif 格式图形。参数 im 为使用 imagecreate() 所建立的图片代码。参数 filename 可省略,若无本参数 filename,则会将图片指接送到浏览器端,记得在送出图片之前要先送出使用 content-type: image/gif 的标头字符串 (header) 到浏览器端,以顺利传输图片。若要使用透明背景的 gif 图,也就是 gif89a 的格式,需要先使用 imagecolortransparent() 配置透明背景。本函数产生的 gif 图,由于有版权的问题

标签:[!--infotagslink--]

您可能感兴趣的文章: