问题标签 [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 投票
1 回答
3289 浏览

php - php计算折扣或税收

我正在尝试使用 PHP 中的 BCMATH 计算税收或折扣值。我需要 2 个小数位。这是我的做法:

我可以简单地将比例增加到 4 或类似的东西,现在会给我一个正确的结果。

所以问题是:我应该如何正确地做到这一点?我应该将比例设置为 4,然后 sprintf('%0.2f', $discount) 最后吗?或者有没有更好的方法来做到这一点?

0 投票
1 回答
672 浏览

php - 为什么 bcmul 返回一个与我指定的比例不同的数字?

我似乎在 php.net 文档中找不到任何解释以下结果的内容:

减法结果正是我所期望的(我指定了一个 4 位数的比例,它给了我一个结果)。乘法结果没有(我指定了一个 4 位数的比例,但它给了我一个 2 位数的结果)。为什么有区别?

注意: 我已经知道如何使用,而且我在数学上number_format()也知道。0.06 === 0.0600我只对理解为什么 BC Math 在结果的规模方面表现不同感兴趣。

注意#2: 如上所述,number_format()不是这个问题的答案,并且引用的“重复问题”中使用的答案都建议使用number_format(). 我很清楚这个函数可用于将数字格式化为指定的精度。我只是想知道为什么这些函数的返回值有不同的比例,而不是如何修复它们以便它们这样做。

0 投票
1 回答
47 浏览

php - bcdiv 最小左/右操作数

回声 bcdiv(0.0001, 86400, 30);

此代码回显:0.000000001157407407407407407407

回声 bcdiv(0.00001, 86400, 30);

这段代码回显:0.000000000000000000000000000000

这是为什么?两个操作数都有最小值吗?我需要将 0.00000001 除以 86400,这可能吗?

这是 bcdiv 的文档:http: //us2.php.net/manual/en/function.bcdiv.php

0 投票
1 回答
1285 浏览

php - Bcmul 报告 0

我有一段简单的代码,如下所示。

当它应该是 4.47274449 时,它会输出 0.00000000。如果我将比率更改为 0.0001,那么它会输出正确的数字,任何高于 4 位小数的数字,它都会报告 0。

我做错了什么还是这是一个已知的限制或什么?如果是这样的话,似乎相当大。

0 投票
1 回答
1365 浏览

php - bcdiv 使用带有科学记数法的非常小的浮点数导致“除以零”错误

使用 bcdiv,我不能使用科学记数法除小浮点数:

工作代码:

结果是 :

字符串(20)“100000000.0000000000”

非工作代码:

结果是 :

警告:bcdiv() [function.bcdiv]:在 C:\wamp\www\utilitaires\test_bcdiv.php XX NULL 行中除以零

我怎样才能正确地进行这种划分,而精度损失较小?

0 投票
0 回答
132 浏览

php - How to add a library to PHP?

My version of PHP, 5.3.8, doesn't contain BC-Math, which is needed for many cryptocurrency functions.

Google hasn't been particularly helpful for links on how to install this particularly library, so I'm at a total loss on how to add it to my already running PHP webserver.

Might someone point me in the direction of how to install this?

0 投票
2 回答
1898 浏览

php - 为什么 bcdiv 总是返回 0?

我对 BIG 数字有一个小问题,其中 BC 数学函数bcdiv总是在非零结果上返回零。

例如 :

与传统方法相比:

我不确定为什么会出现差异。BC 数学函数是否适用于字符串,如果是这样,我如何事先将 int 值转换为字符串(首选内联表示法,例如(int)$myvar;)---如果这是问题所在。

0 投票
1 回答
577 浏览

php - 为什么 php 4.3 中的 bcmath 比 php 5+ 快得多?

决定运行一个快速测试,看看如何bcmath在各种版本的 PHP 上运行,并注意到与 4.3 相比,最新和最好的版本在速度上明显缺乏,

我想知道是否有人知道这背后的原因是什么,和/或如何在 5+ 上提高速度,使其与 4.3 相当。

另请注意,5.6+ 的内存消耗是 4.3 相同操作所需的三倍:

性能测试结果(水流)

0 投票
2 回答
248 浏览

php - Bcmath 随机添加小数位

我有一个从网上获得的使用 bcmath 函数的 PHP 函数:

对于任何有效输入,该函数将随机添加“.0000000000”到输出。

前任:

这是在运行 php-fpm 的 2 个不同的 nginx 服务器上测试的。请帮助我了解这里出了什么问题。谢谢

0 投票
1 回答
1598 浏览

php - 我应该将 BCMath 用于大约 1,2 或 3 位小数的值吗?

我的数据库中有大约 10-15 个数字,精度为 1、2 或 3 位小数,包括有符号和无符号。

使用的数据类型示例:

我在 PHP 中计算它们是这样的:

然后我使用round()这样的一些功能:

结果$result_round最多为:100.000,999

我正在检查这个:bcmath PHP 库的精度是多少? 并且答案表明,如果您不使用 round()、printf 等函数,这将不是问题。

那我应该使用 BCMath-extension 吗?(只是因为我正在使用round()