相关疑难解决方法(0)

为什么Math.round(0.49999999999999994)会返回1?

在以下程序中,您可以看到每个值略小于.5向下舍入,除了0.5.

for (int i = 10; i >= 0; i--) {
    long l = Double.doubleToLongBits(i + 0.5);
    double x;
    do {
        x = Double.longBitsToDouble(l);
        System.out.println(x + " rounded is " + Math.round(x));
        l--;
    } while (Math.round(x) > i);
}
Run Code Online (Sandbox Code Playgroud)

版画

10.5 rounded is 11
10.499999999999998 rounded is 10
9.5 rounded is 10
9.499999999999998 rounded is 9
8.5 rounded is 9
8.499999999999998 rounded is 8
7.5 rounded is 8
7.499999999999999 rounded is 7
6.5 rounded is 7 …
Run Code Online (Sandbox Code Playgroud)

java floating-point double rounding

561
推荐指数
5
解决办法
7万
查看次数

round()for C++中的float

我需要一个简单的浮点舍入函数,因此:

double round(double);

round(0.1) = 0
round(-0.1) = 0
round(-0.9) = -1
Run Code Online (Sandbox Code Playgroud)

我能找到ceil()floor()在math.h中-但不是round().

它是以另一个名称存在于标准C++库中,还是缺少?

c++ floating-point rounding

227
推荐指数
11
解决办法
36万
查看次数

如何围绕CGFloat

我做了这个方法

+ (CGFloat) round: (CGFloat)f {
    int a = f;
    CGFloat b = a;
    return b;
}
Run Code Online (Sandbox Code Playgroud)

它按预期工作,但它只是向下舍入.如果它是一个负数,它仍然会向下舍入.

这只是我制作的一个快速方法,它正确地舍入并不是非常重要,我只是为了使我的游戏围绕相机的x和y值.

这个方法好吗?它快吗?或者有更好的解决方案吗?

math objective-c cgfloat ios

18
推荐指数
3
解决办法
3万
查看次数

标签 统计

floating-point ×2

rounding ×2

c++ ×1

cgfloat ×1

double ×1

ios ×1

java ×1

math ×1

objective-c ×1