1

我正在编写一个 PHP 库,它有一个 Number 类,该类使用bcmath扩展来实现任意精度。

我有两个问题:

  1. 与使用内置的 int 和 float 类型相比,bcmath 慢了多少?

  2. bcmath有一个可选的比例参数(默认为 3 位)。对于任何人都可以使用的通用 Number 类,什么是好的精度水平?像 Perl 这样的语言(具有任意精度数字)如何处理规模?

4

1 回答 1

1

我会决定你需要支持的数字范围。内置值将比任何需要计算和转换为/从其他格式的值更快。

内置整数在任何系统上都可以使用 32 位,有些系统支持 64 位值。您可以通过检查常量 PHP_INT_MAX 的值来检查您的系统支持什么,然后确定是否要承担数学库的开销。对于具有 32 位整数的系统,超过 32 位的任何内容都将自动转换为浮点数。这不是问题,除非您将内置函数用于圆形、printf、模数等。

我被这个使用模数来划分访问我网站的流量以及在 sprintf 中使用 %d 格式化整数:http: //af-design.com/blog/2009/10/28/php-64-bit-整数模数几乎/

于 2010-02-18T08:05:17.083 回答