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

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

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

echo round(4.3)  //4

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


代码如下:

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

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

3、 string number_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

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

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


代码如下:

function getFloatValue($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);

}
echo getFloatValue(12.99,4) //12.9900
echo getFloatValue(12.9232555553239,4) //12.9232

(0)

相关推荐

  • php读取html并截取字符串的简单代码

    复制代码 代码如下: <?php $title='我们'; $hello='jb51.net!'; $file=file_get_contents('http://www.baidu.com'); $file=iconv("gbk//IGNORE","utf-8",$file); //echo $file; echo strpos($file,'<title>'); echo substr($file,strpos($file,'<title

  • php中截取中文字符串的代码小结

    字符串截取是一个非常常见的编程任务,而往往带中文的字符串截取会经常用到.虽然不难,但是自己写函数实现又耗费时间,这里介绍一个比较好用的字符串截取函数,能够胜任基本的需求了. 1. 截取GB2312中文字符串 复制代码 代码如下: < ?php //截取中文字符串 function mysubstr($str, $start, $len) { $tmpstr = ""; $strlen = $start + $len; for($i = 0; $i < $strlen; $i

  • php截取中文字符串不乱码的方法

    GBK编码截取示例 复制代码 代码如下: $str = '我是谁';  //gbk编码的字符串echo mb_substr($str, 0, 1, 'gbk'); //输出 我 mb_substr方法比substr多一个参数,用来指定字符串编码. utf-8编码截取示例 [code]$str = '我abc是谁';  //utf-8编码的字符串echo mb_substr($str, 0, 2, 'utf-8'); //输出 我a[/code 中英混合也完全没有问题. 友情提示 使用的时候要注意

  • Thinkphp模板中截取字符串函数简介

    在php中截取字符串的函数有很多,而在thinkphp中也可以直接使用php的函数,本文给大家简单的介绍thinkPHP模板中截取字符串的具体用法,希望能对各位有所帮助. 对于英文字符可使用如下形式: 复制代码 代码如下: {$vo.title|substr=0,5} 如果是中文字符thinkphp提供了msubstr,用法如下: 复制代码 代码如下: function msubstr($str, $start=0, $length, $charset="utf-8″, $suffix=true

  • php中计算中文字符串长度、截取中文字符串的函数代码

    在PHP中,我们都知道有专门的mb_substr和mb_strlen函数,可以对中文进行截取和计算长度,但是,由于这些函数并非PHP的核心函数,所以,它们常常有可能没有开启.当然,如果是用的自己的服务器,则只要在php.ini中开启即可.如果是用的虚拟主机,而服务器又没有开启这方面的函数的话,那就需要我们自己写出点适合咱国情的函数来了. 以下几个函数用起来颇为顺手的.不过要知道,得在utf-8环境下使用. 复制代码 代码如下: header('Content-type:text/html;cha

  • php获取url字符串截取路径的文件名和扩展名的函数

    php获取文件名 复制代码 代码如下: function retrieve($url) { preg_match('/\/([^\/]+\.[a-z]+)[^\/]*$/',$url,$match); return $match[1]; } php获取文件扩展名 复制代码 代码如下: <?php function getExt($url) { $path=parse_url($url); $str=explode('.',$path['path']); return $str[1]; } ech

  • php简单截取字符串代码示例

    本文实例讲述了php简单截取字符串的方法.分享给大家供大家参考,具体如下: //截取摘要 public static function mbsubstr($str){ $strleng = mb_strlen($str,"utf8"); $mbstr = mb_substr($str,0,140,'utf8'); $strdstr = mb_substr($str,140,$strleng,'utf8'); $strlengs = mb_strlen($strdstr,'utf8');

  • php截取指定2个字符之间字符串的方法

    本文实例讲述了php截取指定2个字符之间字符串的方法.分享给大家供大家参考.具体如下: 在php中只要判断字符串1与字符串2之前的一个stripos位置然后再使用substr开始截取就可以了,这里给大家介绍一个简单例子. 使用方法: $keyword='查找(计组实验)' $need=getNeedBetween($keyword, '(' , ')' ); 运行该程序之后: $need='计组实验'; 下面就来完成上面用到的字符串截取函数getNeedBetween.该函数可实现简单的从字符串

  • PHP中使用substr()截取字符串出现中文乱码问题该怎么办

    在PHP程序开发中,经常会执行字符串的截取操作,比如输出信息列表时,标题不宜过长,打印文章摘要时,也要执行一系列的字符串截取操作.遇到这些需求时,我们经常会想到使用substr()方法来实现,substr()对全英文字符串的截取是比较适合的. 但字符串只要出现中文字符,就有可能导致PHP substr中文乱码,因为中文UTF-8编码,每个汉字占3字节,而GB2312占2字节,英文占1字节,截取位数不准确,substr()硬生生地将一个中文字符"锯"成两半,造成断开的字符会把其后的..拉

  • PHP 截取字符串专题集合

    1.UTF-8.GB2312都支持的汉字截取函数 复制代码 代码如下: <?php /* Utf-8.gb2312都支持的汉字截取函数 cut_str(字符串, 截取长度, 开始长度, 编码); 编码默认为 utf-8 开始长度默认为 0 */ function cut_str($string, $sublen, $start = 0, $code = 'UTF-8') { if($code == 'UTF-8') { $pa = "/[\x01-\x7f]|[\xc2-\xdf][\x8

  • PHP 截取字符串函数整理(支持gb2312和utf-8)

    1.截取GB2312字符用的函数 PHP代码 复制代码 代码如下: <?php //截取中文字符串 function mysubstr($str, $start, $len) { $tmpstr = ""; $strlen = $start + $len; for($i = 0; $i < $strlen; $i++) { if(ord(substr($str, $i, 1)) > 0xa0) { $tmpstr .= substr($str, $i, 2); $i+

  • php字符串截取的简单方法

    复制代码 代码如下: strpos(string,find,start) 实例: 复制代码 代码如下: <?php  echo strpos("Hello world!","wo");  ?> 输出6 复制代码 代码如下: substr(string,start,length) 其中start的参数 正数 - 在字符串的指定位置开始负数 - 在从字符串结尾的指定位置开始0 - 在字符串中的第一个字符处开始 复制代码 代码如下: <?php  ech

  • php从右向左/从左向右截取字符串的实现方法

    语法: substr(要截取的字符串, 开始位置 ,截取长度) 开始位置从0开始,如果想从第一个字符开始截取,则开始位置参数为0. 最后一个参数是可选的,如果只提供开始位置,则从开始位置截取到最后 先看从左向右截取的例子: 1.从第2个字符截取到最后 复制代码 代码如下: $result = substr ("abcdef", 1); echo($result); 输出结果为:bcdef 2.从第2个字符开始截取3个 复制代码 代码如下: $result = substr ("

  • PHP中文处理 中文字符串截取(mb_substr)和获取中文字符串字数

    一.中文截取:mb_substr() mb_substr( $str, $start, $length, $encoding ) $str,需要截断的字符串 $start,截断开始处,起始处为0 $length,要截取的字数 $encoding,网页编码,如utf-8,GB2312,GBK 实例: 复制代码 代码如下: <?php $str='我们:http://www.jb51.net'; echo mb_substr($str,0,4,'utf-8');//截取头5个字,假定此代码所在php

  • php轻松实现中英文混排字符串截取

    先给大家介绍用到的函数: 复制代码 代码如下: mb_strwidth($str, $encoding) 返回字符串的宽度$str 要计算的字符串$encoding 要使用的编码,如 utf8.gbk 复制代码 代码如下: mb_strimwidth($str, $start, $width, $tail, $encoding) 按宽度截取字符串$str 要截取的字符串$start 从哪个位置开始截取,默认是0$width 要截取的宽度$tail 追加到截取字符串后边的字符串,常用的是 ...$

随机推荐