在PHP中检测整数?

Detect round number in PHP?

提问人:Pekka 提问时间:2/28/2010 更新时间:8/23/2014 访问量:2899

问:

如何确定 PHP 中的浮点数是否为整数?

is_round(1.5); // false
is_round(1.0); // true
is_round(1.00000001); // false
PHP的

评论


答:

6赞 Rob 2/28/2010 #1
function is_round( $value ) {
    return intval( $value ) == $value;
}

评论

0赞 Alix Axel 2/28/2010
@stereofrog:怎么会这样? 因为。intval('bar') != 'bar'0 != 'bar'
-1赞 Traveling Tech Guy 2/28/2010 #2

thierryreeuwijk 在此页面上指定的功能应指定您的需求。

评论

1赞 Pekka 2/28/2010
我不完全确定,因为传入的变量仍然是一个.还是我弄错了,这会起作用?float
15赞 John Himmelman 2/28/2010 #3

修改了 Rob 关于 sterofrog 评论的代码。代码检查以确保该值也是数字。

function is_round($value) {
    return is_numeric($value) && intval($value) == $value;
}

评论

0赞 fregante 8/23/2014
如果你正在检查一个数字是否是四舍五入的,你应该已经验证了一个变量实际上是一个数字。 没有任何意义。is_round('bar') => false
-1赞 Theodore Cowan 10/28/2013 #4
if ($value = round($value))

应该有效。

2赞 fregante 8/23/2014 #5

一个更短的版本:在PHP中或JS中:!fmod($num,1)!($num % 1)

作为(更具可读性的)函数:

function is_round( $num ) {
  return !fmod($num, 1);
}

这是基于任何不完全为 0 的数字都是假的。您可以使用来获取数字的小数点后;一旦你拥有了这些,你就可以只拥有它们。fmod($num,1)!