使用具有百分比的PHP运算符

时间:2013-08-27 21:58:56

标签: php operators percentage

我一直在努力解决这个问题。我需要比较用户输入的%的各种值(格式为5%,40%等)。但是,使用if语句查看哪个%更大似乎不起作用。例如,测试:

<?php 
$var1 = '40%';
$var2 = '5%';
if ($var1 < $var2){
    echo 'var1 is smaller than var2';}
if ($var1 > $var2){
    echo 'var1 is larger than var2';} 
?>

等于说var1小于var2。它似乎只是比较第一个数字。例如,如果我将5%更改为3%,则表明var1更大。

他们输入此数据的字段用于各种值,因此我不能真正依赖人们在没有%之后输入数字。我似乎想要比较它们的唯一方法是在每个变量上运行str_replace以删除%符号,但我觉得这样效率很低。有没有更好的方法来比较它们?

2 个答案:

答案 0 :(得分:1)

$var1 = "15%";

是PHP中的字符串,为了比较它们,您需要获取字符串变量的intval。

$var1val = intval($var1);

此时,$var1val将等于15。

您可以使用它来执行if语句:

<?php 

$var1 = intval('40%');
$var2 = intval('5%');

if ($var1 < $var2){
    echo 'var1 is smaller than var2';
}
if ($var1 > $var2){
    echo 'var1 is larger than var2';
}

?>

OR ,符合if

<?php 

$var1 = '40%';
$var2 = '5%';

if (intval($var1) < intval($var2)){
    echo 'var1 is smaller than var2';
}
if (intval($var1) > intval($var2)){
    echo 'var1 is larger than var2';
} 

?>

答案 1 :(得分:0)

您可以使用intval将其转换为数字405而不是字符串:

$var1 = intval('40%'); // 40
$var2 = intval('5%'); // 5

字符串按字典顺序进行比较,正如您所观察到的,第一个字符被比较,然后第二个字符相等,就像在字典中一样。