如何在php中将非常小、正常、大、科学的数字转换为字符串



我使用了这个函数,但它不能很好地处理大小数字

function  convert($number)
{
return  (string)sprintf("%.40f",  floatval($number));
}
//example 1
// convert(10);
//"10.0000000000000000000000000000000000000000" correct
//
//example 2
// convert(1.0464844434049273e-9)
// "0.0000000010464844434049272962108666736101" incorrect
// "0.0000000010464844434049273" correct
//
//example 3
// convert(0.0000010464844434049273)
// "0.0000010464844434049273375698973012615234" incorrect
// "0.0000010464844434049001" correct

我在这里核对了这些号码

在php或laravel中,有什么好的软件包可以处理这些类型的数字吗?

一些有帮助的响应。

第一:

请注意,PHP在内部使用有符号整数。大小取决于您的系统。

32位系统:

2^(32-1(=214748364864位系统:

2^(64-1(=9223372036854775808-1,因为为标牌标志保留了1位。

第二:

要处理大数字并将其用作字符串,请尝试使用BCMath函数。

相关内容

  • 没有找到相关文章

最新更新