There are roughly the following methods for intercepting floating point types in php:
1, float round ( float $val [, int $precision ] ) Returns val rounded to the specified precision (the number of decimal digits after the decimal point). 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
Copy code The code is as follows:
$a=12.338938438;
echo sprintf("%.5f",$a) //Result: 12.33894
$a=12.3312356;
echo sprintf("%.5f",$a);//12.33124
echo sprintf("%f",$a);//331236 Default 6 decimal places
3, string number_format ( float $number , int $decimals , string $dec_point , string $thousands_sep )
Copy code The code is as follows:
$number = 1234.5678;
$english_format_number = number_format($number, 2, '.', '');
echo $english_format_number; // 1234.57
The above are automatically rounded. Sometimes rounding is not required. What should I do? I haven’t thought of a good way. Who knows can tell me.
I wrote a troublesome function myself and recorded it
Copy the code The code is as follows:
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
http://www.bkjia.com/PHPjc/824906.htmlwww.bkjia.comtruehttp: //www.bkjia.com/PHPjc/824906.htmlTechArticleThere are roughly the following methods to intercept floating point types in PHP: 1. float round (float $val [, int $precision ] ) returns the value of val according to the specified precision (the number of decimal digits after the decimal point...