我正在寻找PHP 7新增加的内容以提高我的技能,我想知道#CODE BLOCK 1
from pcinput import getInteger
num1 = getInteger( "Number 1: " )
num2 = getInteger( "Number 2: " )
num3 = getInteger( "Number 3: " )
num4 = getInteger( "Number 4: " )
num5 = getInteger( "Number 5: " )
print( "Total is",num1 + num2 + num3 + num4 + num5)
#CODE BLOCK 2
from pcinput import getInteger
total = 0
count = 0
while count < 5:
total += getInteger( "Please give a number: " )
count += 1
print( "Total is", total)
与intdiv()
或自定义floor()
之间的区别究竟是什么
例如
type cast
在新版本的PHP中添加此函数的原因究竟是什么。
答案 0 :(得分:0)
(int)
将值转换为int
,而floor()
将float
保留为float
。您在示例中使用了正数,但差异是负数。
intdiv
旨在在int
s分割后保留int
。
echo (int) (-8/3); // -2
echo floor(-8/3); // -3
echo intdiv(-8,3); //-2
答案 1 :(得分:-1)
一般来说,你提到的所有这三个作品都与你的例子类似,但intdiv()
会在处理非常大的数字时给你更准确的结果
这是您可以看到的示例。
echo PHP_INT_MAX; // 9223372036854775807
echo (int)(PHP_INT_MAX/2); // 4611686018427387904
// here you can look the ending number
echo floor(PHP_INT_MAX/2); // 4.6116860184274E+18
// here you can see floor will return scientific notation for larger numbers
echo intdiv(PHP_INT_MAX,2); // 4611686018427387903
// you can compare the result return by (int) cast
intdiv()
总是给你正数或换句话说 intdiv()
让你知道你可以均分的次数
另一个示例开发人员总是使用Modulus
运算符来获取余数,但intdiv()
将始终返回正数,并让您知道可以均匀分配的次数。
echo (5 % 2) // 1
echo intdiv(5, 2) // 2
希望这足以理解所有3个人之间的差异。