当前位置: 首页 > 知识库问答 >
问题:

当数字中包含“E”时,如何设置小数点的精度?

越嘉树
2023-03-14

我想把我的十进制修剪成像8.063这样的东西,而不是原来的E-98.0638304611694。我已经为它实现了一个函数,但是当它里面有E-9时,它就不起作用了。我应该修改哪一部分??

public function setPrecision($number, $decimals = 0)
{
    $negation = ($number < 0) ? (-1) : 1;
    $coefficient = 10 ** $decimals;
    return $negation * floor((string)(abs($number) * $coefficient)) / $coefficient;
}

编辑

当我尝试调用函数时,当前实现给了我0

setPrecision(8.0638304611694E-9, 3); // 0

共有2个答案

卜昂熙
2023-03-14

使用sprintf可以很容易地完成特定位数的相对舍入。

$round = (float)sprintf('%0.3E', 8.0638304611694E-9);
var_dump($round);  //float(8.064E-9)
祁彬
2023-03-14

在PHP中,有(在编写的时候)8519个内置函数。其中一个可能会成功!

您可以在函数中使用log10()round()

function setPrecision($number, $precision = 0)
{
    $exponent = floor(log10($number)) - 1;
    return round($number, -$exponent + $precision - 1);
}

 类似资料:
  • 我想把小数点改成,而不是原来的。我已经为它实现了一个函数,但是当它中有时,它就不起作用了。我应该修改哪个部分?? 编辑 当我尝试调用函数时,当前实现给我的。

  • my我希望它只显示。我该怎么做?这就是我尝试过的- 但这只是四舍五入到2位。我希望删除小数之后的所有内容。包括小数。

  • 问题内容: 例如,当我拆分字符串时,我想检查一下我的第一部分是否仅包含数字和小数点。 我做了以下 但这仅检查数字而不是小数。如何在其中检查小数?例如,我想检查0.12.13.14是否可以正常工作,而像0.12.13.14x这样的东西将无法工作。 问题答案: 在正则表达式中添加点字符,如下所示: 该是允许多个数字/小数点。 在情况下,至少一个数字/小数点是必需的,代替具有用于一个或多个出现。 编辑:

  • null null null 我只是不知道如何将两者结合起来,这样小数点后才是强制性的。 我如何解决这个问题?

  • 问题内容: 如果我有以下小数点数字: 然后我得到以下输出: 我想要的是: 问题答案: 可能令人困惑的部分是 的表示整个数(包括小数)的长度,而不仅仅是小数之前的部分。该代表的小数位数。 因此,要使格式正确无误,最多可以有小数点前4个数字和小数点后3个位,实际上是所需的格式。

  • 问题内容: 希望这是一个简单的问题,但我暂时无法解决。我想使用matplotlib显示2个数字,然后以交互方式使用它们。我用以下方法创建数字: 并可以使用类似MATLAB的pyplot界面在两个图中进行绘制和绘制。用 我可以确定pyplot界面的当前活动图形,具体取决于我单击的图形。现在,我想使用pyplot界面在第一个图形上绘制一些东西,但是当前图形可以是其中任意一个。所以有什么像 或任何解决方