要使用大数(100,000+)的Fermat Primality Test时需要使用模幂运算,需要进行一些非常大的计算.
当我乘以两个大数(例如:62574和62574)时,PHP似乎将结果转换为浮点数.获取模数值会返回奇怪的值.
$x = 62574 * 62574;
var_dump($x); // float(3915505476) ... correct
var_dump($x % 104659); // int(-72945) ... wtf.
Run Code Online (Sandbox Code Playgroud)
有没有办法让PHP正确执行这些计算?或者,是否有另一种方法可以找到适用于大数的模数值?
我需要模仿cec(),floor()和round()函数在bcmath数字上的确切功能,我已经发现了一个非常相似的问题,但不幸的是,由于缺乏支持,所提供的答案对我来说还不够好对于负数,并且缺少round()函数的precision参数.
我想知道是否有人能够为这个问题提出一个相当简短而优雅的解决方案.
所有输入都表示赞赏,谢谢!
假设我们有0.00045。我想找到一种方法来计算小数点后的“有效”零(在这种情况下为3)的数量。我一直在尝试实现strpos或substr,但是遇到了麻烦。
其他前任....
3.006405:应返回“ 2”
0.0000062:应返回“ 5”
9.0100000008:应返回“ 1”
有任何想法吗?