Home > Article > Backend Development > Examples of PHP using long-digit number operations to prevent numbers from being displayed in scientific notation
This article mainly introduces the method of PHP using super long (super large) number operations to prevent numbers from being displayed in scientific notation, and involves related skills in PHP mathematical operations and string operations. I hope to be helpful. The example in this article describes how PHP uses extremely long (extra large) number operations to prevent numbers from being displayed in scientific notation. I would like to share them with you for your reference.
The details are as follows:
PHP will make errors when calculating large numerical operations. When the number is too large, the value will become scientific notation. So how to perform PHP extremely large numerical operations, including addition, subtraction, multiplication and division? , what about power operations, square roots, and modulo operations?
To solve the problem of scientific notation, just add a pair of quotation marks when assigning values.
For example:
<?php $n = '22222222222222222222222222220'; echo $n; ?>
If Without quotation marks, it displays 2.2222222222222E+28. With quotation marks, it displays 222222222222222222222222222220
Extremely large numerical operations, including addition, subtraction, multiplication and division, power operations, square roots, and modulo operations.
Use PHP's bcmath function Create a custom function, the code is as follows,
<?php function calc($m,$n,$x){ $errors=array( '被除数不能为零', '负数没有平方根' ); switch($x){ case 'add': $t=bcadd($m,$n); break; case 'sub': $t=bcsub($m,$n); break; case 'mul': $t=bcmul($m,$n); break; case 'p': if($n!=0){ $t=bcp($m,$n); }else{ return $errors[0]; } break; case 'pow': $t=bcpow($m,$n); break; case 'mod': if($n!=0){ $t=bcmod($m,$n); }else{ return $errors[0]; } break; case 'sqrt': if($m>=0){ $t=bcsqrt($m); }else{ return $errors[1]; } break; } $t=preg_replace("/\..*0+$/",'',$t); return $t; } /*用法举例*/ echo calc('11111111111111111111111111111111110','10','add'); ?>
Usage method:
calc(parameter 1 parameter 2, parameter 3);
Parameter 3 specifies the operation method: add plus, sub minus ,mul good, p division, pow power, mod modulo, sqrt to find the arithmetic square root
Addition, subtraction and division: parameter 1 plus/subtract/multiply/divide parameter 2
Power: parameter of parameter 1 2nd power.
Modulo: The remainder obtained by dividing parameter 1 by parameter 2.
Arithmetic square root: Find the arithmetic square root of parameter 1. Parameter 2 has no effect, but cannot be omitted.
Related recommendations:
php Detailed introduction to operators and expressions_php examples
The above is the detailed content of Examples of PHP using long-digit number operations to prevent numbers from being displayed in scientific notation. For more information, please follow other related articles on the PHP Chinese website!