Home  >  Article  >  Backend Development  >  Summary of PHP rounding and interception methods of floating point strings

Summary of PHP rounding and interception methods of floating point strings

高洛峰
高洛峰Original
2017-03-16 10:28:071705browse

In phpInterception of floating point typeThere are roughly the following methods:

1. float round (float $val [, int $precision]) returns val according to the specified precision precision (the number of decimal digits after the decimal point) rounded. precision can also be negative or zero (default).

echo round(4.3) //4

2. string sprintf ( string $format [, mixed $args [, mixed $... ]] ) returns the string of formatted data

$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

The above are automatically rounded, and sometimes rounding is not required. , what should I do? I haven’t thought of a good solution. If anyone knows, can you tell me.

I wrote a troublesome function and recorded it

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

For more PHP float interception of floating-point string methods without rounding and related articles, please pay attention to the PHP Chinese website!

Related articles:

php data processing rounding

detailed introduction to the rounding function in php

3 ways to implement rounding in PHP

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn