ceil floor PHP,PHP ceil()和floor()返回float?

PHP文档对ceil()函数声明以下内容:

Return Values

value rounded up to the next highest integer. The return value of ceil() is still of type float as the value range of float is usually bigger than that of integer.

floor()还返回一个float作为返回值.但是,对于我来说,这没有任何意义.为什么非十进制返回值需要的范围大于整数?

解决方法:

它在引号中说是这样:因为float的值范围通常大于整数的值范围.如果您返回一个int(或long),则您的原始值很可能落在该int或long可能表示的数字范围之外.

后续问题回答:

What do you mean by “your original value falls outside the range of numbers”? I mean, the purpose of ceil() and floor() is to round up and down numbers to a whole number (integer) after all?

(Audite Marlow Apr 6 ’16 at 15:19)

是的,但是如果您拥有的无符号数大于40亿,并且某物或带符号的数大于该数字的一半,则不能将其包含在int中,因为该数字太大而无法容纳在四字节整数.

对于太大而无法放入8字节整数(长整数)的数字,情况也是如此.

如果我没记错的话,则双精度数(这是一个8字节的浮点数)的范围是10 ^ -308到10 ^ 308,这比long的可能值范围大得多.

如果您希望将数字的上限或下限限制为10或100,则不能将其设置为int或long类型,因此只能使用浮点数(或double数).

(此问题在提出问题后很长时间便已合成,目的是提供问题的实际答案,而不是只留下一些评论而保持开放状态)

标签:floor,ceil,php

来源: https://codeday.me/bug/20191118/2031263.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值