-2

我正在寻找一种在 PHP 中将浮点值转换为字符串的方法,而无需指数(科学)表示法。我需要它才能使用不支持指数表示法的bcmath 。

<?php

$float  = 0.000003;
$string = (string) $float;

var_dump($string); 
// Actual result: "3.0E-6"
// Expected result: "0.000003"

var_dump(bcadd($string, $string, 6)); 
// Actual result: 0.000000 
// Expected result: "0.000006"
4

2 回答 2

0

利用sprintf

$float  = 0.000003;
$string = sprintf("%.6f", $float);

var_dump($string);
于 2021-02-10T11:18:29.030 回答
0

试试这个功能:

   function f2s(float $f) {
        $s = (string)$f;
        if (!strpos($s,"E")) return $s;
        list($be,$ae)= explode("E",$s);
        $fs = "%.".(string)(strlen(explode(".",$be)[1])+(abs($ae)-1))."f";
        return sprintf($fs,$f); 
    }
于 2021-02-10T12:17:09.117 回答