【发布时间】:2014-10-20 08:52:35
【问题描述】:
我创建了一个检查数字是否无理的函数:
function Verifie_infini($value) {
if(strlen(substr(strrchr($value, "."), 1))>= 10) {
return 1;
} else {
return 0;
}
}
但是当有大数字时它不起作用:sqrt(1194739201)它返回0。
您有想法或确实存在更好的功能吗?
【问题讨论】:
-
PHP 已经有一个实际工作的is_infinite() 函数。
if (is_infinite($value)) .... -
“无限”可能是指十进制表示为无限的数字,即无理数。我认为这是不可行的,因为浮点算术适用于有理近似并且没有无理数的概念。
-
是的,我会说无理数(对不起我的英语)。我认为数小数可以表明它是否是无理数。
-
@louis67: 是的,这是不可能的(想想:你怎么能count一个infinite数?)
-
@georg 是的,例如,我会检查这个数字是否有超过 10 个小数,然后说这是不合理的。我的功能适用于中小型数字,但在它不起作用之后。