问题标签 [bcmath]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
124 浏览

php - 将浮点数转换为没有指数符号的字符串

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

0 投票
1 回答
2385 浏览

php - 如果将指数数传递给它的函数,PHP BCMath 无法处理,PHP BCMath 返回“bcmath 函数参数格式不正确”

我正在研究少数小数点,例如 0.0000687、0.0000063241、0.0000454。我使用 BCMath 来获得最精确的结果,因为它涉及货币计算,到目前为止,BCMath 对我修复我之前遇到的错误非常有帮助。但是我发现如果将PHP自动转换的指数值传递给BCMath,BCMath就不能正常工作。下面是示例代码:

在此处输入图像描述

PHP 开始将其实数转换为指数数的模式是:(见下图)

在此处输入图像描述

从上图可以看出,PHP 开始将实数转换为指数的模式是当前导 0 数为 4 次 -> 0.0000xxxxx 时(PHP 开始转换为指数的模式)。

然后,假设这个变量 $x 将被计算为 PHP BCMath 函数之一:

结果是错误的,这里是变量 $x 的屏幕截图:

在此处输入图像描述

这里的结果是错误的,这里是变量 $y 的屏幕截图(首先传递给字符串,因为 BCMath 可以很好地处理字符串):

在此处输入图像描述

重要提示

  • 所以事实证明 BCMath 在使用指数值时存在问题,我无法避免这个指数值,因为 PHP 会在达到其模式时自动将其解析为指数数(可以参见我上面附加的图像)。
  • 考虑到变量 $x 我从不同的计算中得到的位置,所以在实际代码中,我不能真正将它硬编码为我想要的方式。
0 投票
1 回答
33 浏览

php - 大数乘除法

我正在尝试下面提到的代码(PHP)来查找概率。计算包括大数的组合计算,使用BCmaths函数但没有得到结果。请建议,如何做到这一点。

0 投票
0 回答
71 浏览

php - Twig 定点算法

我正在尝试在 Twig 模板中进行精确的算术计算,但我正在努力解决浮点的精度错误,我找不到解决这个问题的方法。

有没有办法在我的 Twig 文件(如bcmath扩展名)中解决这个问题,或者我唯一的方法是直接使用 PHP 的结果变量呈现我的模板?

我留下一个我正在努力的小例子:

0 投票
0 回答
35 浏览

php - PHP 模块与 PHP 信息文件不匹配

所以我正在尝试安装 bcmath 模块,它似乎已经工作了,但是当我检查我的 phpinfo 时它说它不在那里。

这是我做的时候得到的输出php -m

不确定这是否有所不同,但我使用的是 nginx 和 CentOS,并且我还使用了该命令yum install php74-php-bcmath.x86_64来安装它。这是 bcmath 模块应该在我的 phpinfo 中的位置的屏幕截图: 在此处输入图像描述

0 投票
0 回答
33 浏览

php - 在 PHP 中,将 bcmath 函数的结果保留为字符串还是将结果转换回浮点数更好?

如果我使用 bcmath 函数,它们都将值作为字符串并返回一个字符串。我有几个函数使用 bcmath 来处理货币值。DECIMAL(15,3)在大多数情况下,数据库将这些值存储为 a 。

下面是一个代码示例:

我的主要问题是:我应该在 PHP 中使用浮点数进行操作,除非在执行 bcmath 操作时,因为这是数据库中的等效数据类型,还是我通常应该避免使用float数据类型,除非在使用数据库创建/更新/读取时?

前一个选项更像是:

我想,选项三将停止尝试使 PHP 进行更严格的类型化,只要我将 bcmath 与货币数字一起使用,就不要分配数据类型。