首頁 >後端開發 >php教程 >php float不四捨五入截取浮點型字串的方法

php float不四捨五入截取浮點型字串的方法

不言
不言原創
2018-07-03 17:21:321715瀏覽

在php中截取浮點型大致有以下幾種方法。需要的朋友可以來參考下,希望對大家有幫助

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

#以上就是本文的全部內容,希望對大家的學習有所幫助,更多相關內容請關注PHP中文網!

相關推薦:

php使用parse_url和parse_str解析URL的介紹

PHP全功能無變形圖片裁剪的操作類別與用法的介紹

#

以上是php float不四捨五入截取浮點型字串的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn