2013-11-29 6 views
1

Я хочу начать с того, что мне жаль, если этот вопрос уже задан - я огляделся, и ничего не соответствовало моему запросу. В основном я хочу знать, как преобразовать строку «100.0» или «100». к поплавкам 100.0 и 100.0, а также как убедиться, что поплавки 100.0 и 100. не равны друг другу (то же самое касается ситуаций, таких как 100. и 100 и 100.0 и 100 Спасибо!Как точно преобразовать строку в десятичную цифру и наоборот

Редактировать: Чтобы уточнить не сравнявшись вещь вот пример:

Допустим, у вас есть переменная $a = 100. и $b = 100.0 Я хочу, чтобы убедиться, что $ а не равно $ B

+0

Эта часть вашего вопроса не имеет смысла: «а также как убедиться, что поплавки 100.0 и 100. не равны»; любая переменная всегда будет равна самому себе, а 100 и 100.0 будут одинаковыми, поэтому всегда будут равны * друг другу *. Если вы хотите сравнить строки, вам нужно сделать это, прежде чем преобразовывать их в числа. – IMSoP

+0

В представлении с плавающей запятой имеется только один символ '100'. – Vatev

+0

Это невозможно. Физическое представление числа с плавающей точкой совпадает. – user4035

ответ

2

Если вы определили $a и $b как:

$a = 100; 
$b = 100.0; 

.. то они не то же самое. $a является integer и $b является float. Вы можете увидеть это с помощью:

var_dump($a, $b); 

Но тем не менее, так как они оба numerice типа, вам нужно сравнить их с помощью strict comparison operator===:

if($a === $b) { 
    echo "equal"; 
} else { 
    echo "not equal"; 
} 

Если они определены как строки :

$a = "100"; 
$b = "100.0"; 

тогда даже простой оператор равных == wo uld work:

if($a == $b) { 
    echo "equal"; 
} else { 
    echo "not equal"; 
} 
Смежные вопросы