PHP | Сделайте проверку проверки, имеет ли число десятичную точку == x.00 или нет

#php

#php

Вопрос:

Эм, я не знаю, как это объяснить. Я надеюсь, вы поймете суть.

У меня есть переменные:

 $a = 10; //int
$b = 2.5; //float
$c = $a * $b; //I know this return will be float: 25
 

Из этих переменных я хочу сделать следующее утверждение:

 if (//the value of $c have a decimal point == x.00) {
    echo $c;
} else {
    echo '';
}
 

Вы получили это? Я хочу, чтобы, когда десятичная точка $c равна x.00 (например, 25.00, 10.00 и т.д.), $c Будет напечатано. Но если десятичная точка НЕ равна x.00 (например, 25.50, 25.7 и т.д.), То $c ОНА НЕ будет напечатана.

Я прочитал некоторые ссылки, но все еще не понимаю, как это сделать.

Спасибо. Надеюсь, вы понимаете, что я имею в виду.

Комментарии:

1. Как насчет ( (int) $ c == $ c) ?

2. Взгляните на is_float() и round() .

3. Добавьте все возможности. Как насчет 45 , 45.0 , 0.0 , 0.00 ?

4. @Andreas Просто и работает! Я предпочитаю ваш метод. Спасибо! Я действительно люблю это сообщество!

Ответ №1:

PHP имеет is_integer() https://www.php.net/manual/en/function.is-integer.php

Или, если вы хотите проверить вручную, вы можете сравнить с округленными вниз (floor) и округленными вверх (ceil) значениями:

 if ($a==Floor($a) amp;amp; $a==Ceil($a)){
 // Whole Number
} else {
 // Has decimal point value
}
 

Комментарии:

1. Спасибо. Мне очень помогли 🙂

Ответ №2:

Вы можете попробовать, как показано ниже.

 <?php
  function is_decimal_exist( $value ) {
     return is_numeric( $value ) amp;amp; floor( $value ) != $value;
  }

   $my_value = "10.00";
      

   if( is_decimal_exist ( $my_value ) ) {
       echo ''; // Decimal Present, Do Not Print $my_value
   }else{
       echo $my_value; // Print $my_value
   }
?>
 

Комментарии:

1. Добро пожаловать. Я попробовал функцию, поэтому после включения ее можно использовать несколько раз на всех страницах без какого-либо дополнительного кодирования…

Ответ №3:

Намного проще. Просто проверьте, равно ли целое число == числу:

 if ((int)$c == $c) {
    echo $c;
} else {
    echo '';
}