Home  >  Article  >  Backend Development  >  How does php convert scientific calculations to strings and participate in calculations

How does php convert scientific calculations to strings and participate in calculations

青灯夜游
青灯夜游forward
2021-03-09 17:53:533085browse

This article will introduce to you how PHP converts scientific calculations into strings and participates in calculations. It has certain reference value. Friends in need can refer to it. I hope it will be helpful to everyone.

How does php convert scientific calculations to strings and participate in calculations

Recommended study: "PHP Video Tutorial"

First look at this code. When the PHP number exceeds a certain length, it will automatically Convert to the form of scientific notation

$open = 1.248E-5;   // 0.00001248
$close = 1.228E-5;   // 0.00001228
 
echo bcsub($close, $open, 10);   // 0.00000000
echo $percent = bcdiv(bcsub($close, $open, 10), $open, 10);  //Warning:  bcdiv(): Division by zero

If you run it directly, an error will be reported. If it is a string, it can be used normally

$open = '0.00001248';
$close = '0.00001228';
 
echo bcsub($close, $open, 10);   // -0.0000002000
echo $percent = bcdiv(bcsub($close, $open, 10), $open, 10);  // -0.0160256410

So the key to the problem becomes, how to convert scientific calculations to strings

$open = 1.248E-5;
 
// 方法一, php内置函数
$str = number_format($open, 10, '.', '');   // 保留10位小数, 小数分割符为点, 千位分隔符为空
var_dump($str);  //0.00001248
 
// 方法二
function scToStr($num, $double = 8){
    if(false !== stripos($num, "e")){
        $a = explode("e",strtolower($num));
        return bcmul($a[0], bcpow(10, $a[1], $double), $double);
    }
}
 
$str = scToStr($open, 8);
var_dump($str); //0.00001248

For more programming related knowledge, please visit: Programming Video! !

The above is the detailed content of How does php convert scientific calculations to strings and participate in calculations. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:csdn.net. If there is any infringement, please contact admin@php.cn delete