zl程序教程

您现在的位置是:首页 >  后端

当前栏目

phpfloat不四舍五入截取浮点型字符串方法总结

方法 字符串 总结 截取 四舍五入 浮点
2023-06-13 09:15:07 时间

php中截取浮点型大致有下面几种方法:

1、floatround(float$val[,int$precision])返回将val根据指定精度precision(十进制小数点后数字的数目)进行四舍五入的结果。precision也可以是负数或零(默认值)。

   echoround(4.3) //4

2、stringsprintf(string$format[,mixed$args[,mixed$...]])返回格式化数据的字符串

复制代码代码如下:

$a=12.338938438;
echosprintf("%.5f",$a)//结果:12.33894 

$a=12.3312356;
echosprintf("%.5f",$a);//12.33124
echosprintf("%f",$a);//331236 默认小数点后6位

3、stringnumber_format(float$number,int$decimals,string$dec_point,string$thousands_sep)
复制代码代码如下:

$number=1234.5678;

$english_format_number=number_format($number,2,".","");
echo $english_format_number;//1234.57

以上这些都自动做了四舍五入,有时候需求不需要四舍五入呢,怎么办,没有想到好办法,谁知道可以告诉一声。

自己写了个麻烦点的函数,记录下

复制代码代码如下:
functiongetFloatValue($f,$len)
{
 $tmpInt=intval($f);

 $tmpDecimal=$f-$tmpInt;
 $str="$tmpDecimal";
 $subStr=strstr($str,".");
 if(strlen($subStr)<$len+1)
 {
 $repeatCount=$len+1-strlen($subStr);
 $str=$str."".str_repeat("0",$repeatCount);

 }

 return   $tmpInt."".substr($str,1,1+$len);

}
echogetFloatValue(12.99,4)//12.9900
echogetFloatValue(12.9232555553239,4)//12.9232