2010-02-15 41 views
1

我在写一个PHP库,它有一个Number类,它使用bcmath extension作为任意精度。bcmath PHP库有多少精度?

我有两个问题:

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

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

回答

1

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

以任何系统内置32位为好,有些系统支持64位值。您可以通过检查常量PHP_INT_MAX的值来检查系统支持的内容,并确定是否要在此之后执行数学库的开销。对于32位整数的系统,32位以上的任何数据都会自动转换为浮点数。这不是一个问题,除非你正在使用内置函数,如round,printf,模等等。

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