当前位置: 首页 > 面试题库 >

在PHP中为浮点数设置精度

施雅懿
2023-03-14
问题内容

我从数据库中得到一个数字,这个数字可能是floatint

我需要将数字的小数精度设置为3,这会使数字不超过(关于小数)5.0201518845.756

使用PHP

round($number, $precision)

我看到一个问题:

四舍五入数字。我需要一个仅将小数点缩短而不改变其值的函数,而这些值round( )似乎不遵循。


问题答案:

您可以number_format()用来实现以下目的:

echo number_format((float) $number, $precision, '.', '');

这将转换1518845.7567891518845.757

但是,如果您只想将小数位数缩短到3,而 不是 四舍五入,则可以执行以下操作:

$number = intval($number * ($p = pow(10, $precision))) / $p;

乍一看可能令人生畏,但是这个概念确实很简单。您有一个数字,将其乘以10
3(变为1518845756.789),将其强制转换为整数,以便删除小数点后3位(变为1518845756)后的所有内容,然后将结果除以10
3(变为1518845.756)。



 类似资料:
  • 问题内容: $a = ‘35’; $b = ‘-34.99’; echo ($a + $b); 结果为0.009999999999998 这是怎么回事?我想知道为什么我的程序不断报告奇怪的结果。 为什么PHP不返回预期的0.01? 问题答案: 因为浮点运算!=实数运算。对于一些浮子和,由不精确性引起的差异的说明是。这适用于使用浮点数的任何语言。 由于浮点数是具有有限精度的二进制数,因此存在有限数量

  • 运行以下代码时,我希望收到这样的输出: 但结果如下: 欢迎任何能指导我正确使用浮点比较和正确使用setprecision的建议。

  • 我想在C中设置浮点的精度。假设我的代码是 < code>float a = 23.5,b = 24.36浮动c = a b; 如果我发表了这个 它给出:46.86 但我想打印到小数点后一位。怎么做?

  • 本文向大家介绍Fortran 浮点数精度,包括了Fortran 浮点数精度的使用技巧和注意事项,需要的朋友参考一下 示例 类型的浮点数real不能有任何实数值。它们可以表示实数,最多可以包含一定数量的十进制数字。 FORTRAN 77保证了两种浮点类型,而最新的标准则至少保证了两种实数类型。实变量可以声明为 x这是默认类型的实数,并且y是比更大的十进制精度的实数x。在Fortran 2008中,十

  • 我编写了一个程序来演示Go中的浮点错误: 它打印: 这与用C编写的相同程序的行为相匹配(使用双代码类型) 但是,如果改用,程序就会陷入无限循环!如果将C程序修改为使用而不是,它将打印 为什么在使用时,Go程序的输出与C程序的输出不一样?

  • 问题内容: 我正在读取一个带有浮点数的文本文件,这些数字都带有1或2个小数点。我正在使用将线转换为浮点数,并在失败的情况下引发。我将所有花车存储在列表中。打印时,我想将其打印为2个小数位的浮点数。 假设我有一个文本文件,其编号为-3,65、9,17、1。我阅读了每个文件,然后将它们转换为float并将它们附加到列表中。现在在Python 2中,调用return 。但是在Python 3中,-3.6