Php 格式化输入字段并打印一个整数
我对PHP完全陌生。我试着做一个简单的计算脚本。我面临的问题是,当有人输入一个像“98,7”这样的数字时,这个数字被四舍五入为“99”,脚本输出的是“99”而不是“100”。所以我的问题是如何处理这个问题 我的剧本:Php 格式化输入字段并打印一个整数,php,rounding,Php,Rounding,我对PHP完全陌生。我试着做一个简单的计算脚本。我面临的问题是,当有人输入一个像“98,7”这样的数字时,这个数字被四舍五入为“99”,脚本输出的是“99”而不是“100”。所以我的问题是如何处理这个问题 我的剧本: if($omtrek >=53 && $omtrek <=57) $omtrek=55; elseif($omtrek >=58 && $omtrek <=62)
if($omtrek >=53 && $omtrek <=57) $omtrek=55;
elseif($omtrek >=58 && $omtrek <=62) $omtrek=60;
elseif($omtrek >=63 && $omtrek <=67) $omtrek=65;
elseif($omtrek >=68 && $omtrek <=72) $omtrek=70;
elseif($omtrek >=73 && $omtrek <=77) $omtrek=75;
elseif($omtrek >=78 && $omtrek <=82) $omtrek=80;
elseif($omtrek >=83 && $omtrek <=87) $omtrek=85;
elseif($omtrek >=88 && $omtrek <=92) $omtrek=90;
elseif($omtrek >=93 && $omtrek <=97) $omtrek=95;
elseif($omtrek >=98 && $omtrek <=102) $omtrek=100;
elseif($omtrek >=103 && $omtrek <=107) $omtrek=105;
elseif($omtrek >=108 && $omtrek <=112) $omtrek=110;
elseif($omtrek >=113 && $omtrek <=117) $omtrek=115;
elseif($omtrek >=118 && $omtrek <=122) $omtrek=120;
elseif($omtrek >=123 && $omtrek <=127) $omtrek=125;
elseif($omtrek >=128 && $omtrek <=132) $omtrek=130;
elseif($omtrek >=133 && $omtrek <=137) $omtrek=135;
elseif($omtrek >=138 && $omtrek <=142) $omtrek=140;
if ($omtrek < 53){
print 'Helaas';
}
elseif ($omtrek > 142){
print 'XXL';
}
elseif ($omtrek = round($omtrek)){
print("maat: " . $omtrek . "<br/>");
}
if($omtrek>=53&&$omtrek=58&&$omtrek=63&&$omtrek=68&&$omtrek=73&&$omtrek=78&&$omtrek=83&&$omtrek=88&$omtrek=93&$omtrek=98&$omtrek=103&$omtrek=108&&$omtrek=113&$omtrek=123&$omtrek=128&$omtrek=133&$omtrek=138&$omtrek=138){
打印“XXL”;
}
elseif($omtrek=round($omtrek)){
打印(“maat:.$omtrek.”
);
}
我认为您正在寻找的功能是ceil
<?php
$omtrek = 98.7;
$omtrek=ceil($omtrek);
if($omtrek >=53 && $omtrek <=57) $omtrek=55;
elseif($omtrek >=58 && $omtrek <=62) $omtrek=60;
....
与其有一长串if()
语句,为什么不应用一点数学呢
$ cat om.php
#!/usr/local/bin/php
<?php
$omtrek = array( 52, 59, 61, 62, 63, 96.7, 98.7, 150);
foreach ($omtrek as $value) {
if ($value < 53){
$output='Helaas';
} elseif ($value > 142){
$output='XXL';
} else {
$output = round($value/5)*5;
}
printf("%6s => %s\n", $value, $output);
}
$ ./om.php
52 => Helaas
59 => 60
61 => 60
62 => 60
63 => 65
96.7 => 95
98.7 => 100
150 => XXL
$
$cat om.php
#!/usr/local/bin/php
您正在尝试四舍五入到最接近的“5”而不是“1”。因此,我们可以用它来大大简化您的工作:
$omtrek = 5 * round($omtrek / 5);
它取代了庞大的if语句树。因此,您的整个代码可以归结为:
if ($omtrek < 53){
print 'Helaas';
} elseif ($omtrek > 142){
print 'XXL';
} else {
print "maat: " . (5 * round($omtrek / 5)) . "<br/>";
}
if($omtrek<53){
打印“Helaas”;
}elseif($omtrek>142){
打印“XXL”;
}否则{
打印“maat:”(5*轮($omtrek/5))。“
”;
}
此外,对于您的原始点,应该由您的if结构来处理,因为98.7
属于其中一个条件。我认为ghoti和ircmaxel提供的答案比这更好
然而,因为您是PHP新手。。。您可能不知道,如果一个if()
的计算结果为true,那么“else”链中的其余部分甚至不会被考虑。因此,这将起作用:
if ($omtrek < 53) $omtrek="Helaas";
elseif ($omtrek <= 57) $omtrek=55;
elseif ($omtrek <= 62) $omtrek=60;
elseif ($omtrek <= 67) $omtrek=65;
elseif ($omtrek <= 72) $omtrek=70;
elseif ($omtrek <= 77) $omtrek=75;
elseif ($omtrek <= 82) $omtrek=80;
elseif ($omtrek <= 87) $omtrek=85;
elseif ($omtrek <= 92) $omtrek=90;
elseif ($omtrek <= 97) $omtrek=95;
elseif ($omtrek <= 102) $omtrek=100;
elseif ($omtrek <= 107) $omtrek=105;
elseif ($omtrek <= 112) $omtrek=110;
elseif ($omtrek <= 117) $omtrek=115;
elseif ($omtrek <= 122) $omtrek=120;
elseif ($omtrek <= 127) $omtrek=125;
elseif ($omtrek <= 132) $omtrek=130;
elseif ($omtrek <= 137) $omtrek=135;
elseif ($omtrek <= 142) $omtrek=140;
else $omtrek="XXL";
print "maat: " . $omtrek . "<br/>";
if($omtrek<53)$omtrek=“Helaas”;
elseif($omtrek)您想进行上舍入和下舍入吗?小心使用逗号作为小数。字符串97,7
(带逗号)接近95,而不是100。这是一个糟糕的解决方案!从来没有想到过这一点,这样做!感谢您的帮助和评论。
if ($omtrek < 53) $omtrek="Helaas";
elseif ($omtrek <= 57) $omtrek=55;
elseif ($omtrek <= 62) $omtrek=60;
elseif ($omtrek <= 67) $omtrek=65;
elseif ($omtrek <= 72) $omtrek=70;
elseif ($omtrek <= 77) $omtrek=75;
elseif ($omtrek <= 82) $omtrek=80;
elseif ($omtrek <= 87) $omtrek=85;
elseif ($omtrek <= 92) $omtrek=90;
elseif ($omtrek <= 97) $omtrek=95;
elseif ($omtrek <= 102) $omtrek=100;
elseif ($omtrek <= 107) $omtrek=105;
elseif ($omtrek <= 112) $omtrek=110;
elseif ($omtrek <= 117) $omtrek=115;
elseif ($omtrek <= 122) $omtrek=120;
elseif ($omtrek <= 127) $omtrek=125;
elseif ($omtrek <= 132) $omtrek=130;
elseif ($omtrek <= 137) $omtrek=135;
elseif ($omtrek <= 142) $omtrek=140;
else $omtrek="XXL";
print "maat: " . $omtrek . "<br/>";