#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 '';
}