PHP文档声明了ceil()
函数的以下内容:
返回值
value
向上舍入到下一个最高整数。ceil()
的返回值仍然是float类型,因为float的值范围通常大于整数的值。
floor()
也返回一个float作为返回值。但是,对我来说,为什么没有任何意义。为什么非十进制返回值需要的范围大于整数的范围?
答案 0 :(得分:3)
它在引用中引用如此:因为float的值范围通常大于整数的值。如果你返回一个int(或long),很可能你的原始值超出了可能由所述int或long表示的数字范围。
后续问题&回答:
你是什么意思"你的原始值超出数字范围"?我的意思是,
ceil()
和floor()
的目的是将数字向上和向下舍入到整数(整数)?(Audite Marlow 4月6日和16日15:19)
是的,但是如果你有一个高于40亿的无符号数和一个大于一半的有符号数,它就不能包含在int中,因为这个数字太大而不适合里面一个四字节的整数。
对于太大而不适合8字节整数(长整数)的数字也一样。
如果我没有弄错的话,double(这是一个8字节的浮点数)的范围是10 ^ -308到10 ^ + 308,这比可能的值范围宽得多。很久了。
如果你想要一个粗略值为10 ^ 100的数字,或者你需要将它放在一个int或long中,那么只有一个浮点数(或双精度数)。
(这个答案在提出问题后很久就已经合成,提供问题的实际答案,而不是仅仅留下几条评论就开放了)