基本INT和PHP INT之间的差异,如何解决?
我一直在用PHP重新编写一个基本程序。我遇到了一个问题,让我解释一下: 在基本代码中,我有以下带有值的语句:基本INT和PHP INT之间的差异,如何解决?,php,integer,basic,Php,Integer,Basic,我一直在用PHP重新编写一个基本程序。我遇到了一个问题,让我解释一下: 在基本代码中,我有以下带有值的语句: LSLATVER=1590 PITCHVER=50 NRSLATHOR=INT(LSLATVER/PITCHVER-.8) // output: 30 在PHP代码中,我有两个类似的示例: $length_vertical_slat = 1590; $vertical_pitch = 50; echo $number_of_horizontal_slats = (int)
LSLATVER=1590
PITCHVER=50
NRSLATHOR=INT(LSLATVER/PITCHVER-.8)
// output: 30
在PHP代码中,我有两个类似的示例:
$length_vertical_slat = 1590;
$vertical_pitch = 50;
echo $number_of_horizontal_slats = (int) ($length_vertical_slat / $vertical_pitch - .8);
// output: 31
echo $number_of_horizontal_slats = (int) ($length_vertical_slat / ($vertical_pitch - .8));
// output: 32
为什么这三个例子之间有如此巨大的差异?在本例中,我需要PHP输出30的值,但我不知道如何进行。请救救泰 BASIC使用整数除法,并将最终结果减少为int,因此您需要在PHP中模拟这一点(默认情况下,PHP转换为float
,而不是减少为int
)
这意味着在两个阶段(除法和减法),您都希望将值减小为int。PHP文档建议通过将值转换为int,就像您在示例中所做的那样:
$length_vertical_slat = 1590;
$vertical_pitch = 50;
// outputs 30
echo $number_of_horizontal_slats = (int)((int)($length_vertical_slat / $vertical_pitch) - .8);
发件人: PHP中没有整数除法运算符。1/2产生浮动 0.5. 可以将该值强制转换为整数以向下舍入[…]
你试过吗?读一读浮点数学。对于php浮点数学,请使用“bcmath”:首先要注意的是,您的基础数学已出局。
$var/$var-$float
与$var/($var-$float)
括号首先计算数学101。第二件需要注意的事情是,您将其硬转换为INT,因此php正在执行logica操作,并将其四舍五入为30.5到31到31。你的第一句话是正确的,但去掉硬句,你就会明白。我是个懒惰的程序员,所以请原谅我。原谅我!!!在这种情况下,也使用floatval()
my$vars是否是一种好的做法?你是我的英雄。