gpt4 book ai didi

objective-c - "double"在 ceil(double) 中做什么?

转载 作者:太空狗 更新时间:2023-10-30 03:59:48 28 4
gpt4 key购买 nike

我有一个数字(比方说,34),我想找到它的下一个十的倍数。我可以通过以下方式做到这一点:

  1. 将数字除以 10
  2. 四舍五入为整数
  3. 乘以 10。

经过一些研究,我发现这是 Objective C 中的代码:

int number = 34;
int roundedNumber = ceil((double)number/10)*10;

我的问题是:(double) 的作用是什么,为什么删除 (double) 会导致它向下舍入而不是向上舍入?

我通过谷歌搜索了解到将浮点格式更改为“ double ”,但老实说,这对我来说太复杂了。谁能简单解释一下它在做什么?

最佳答案

如果您没有强制转换,则会发生以下情况(如果数字为 34)。

  1. 使用整数运算,number/10 是 number/10 向下舍入,即 3。
  2. ceil(3) = 3
  3. 3*10 = 30

如果您有类型转换,则会发生以下情况:

  1. (双)数 = 34.0
  2. 34.0/10 = 3.4
  3. ceil(3.4) = 4.0
  4. 4.0*10 = 40

要认识到的重要一点是整数除法总是向 0 舍入。

关于objective-c - "double"在 ceil(double) 中做什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5976832/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com