如何在C中将一个double舍入为最近的较小的int?

n8ghc7c1  于 2023-03-28  发布在  其他
关注(0)|答案(4)|浏览(129)

我有一个double

double d = 25.342;

如何将其转换为25
如果是-12.46,我想得到-13

xlpyo6sf

xlpyo6sf1#

int i = (int)floor(25.342);
gk7wooem

gk7wooem2#

int i = (int)floor(25.342);

注意,这将把12.99999转换为12。
Ref

fruv7luv

fruv7luv3#

其中x是您的25.342

int i = x >= 0 ? (int)(x+0.5) : (int)(x-0.5)
carvr3hs

carvr3hs4#

#include <math.h>
#include <stdio.h>

int main(){

    double d = 25.342;
    double e = -12.99;

    printf("%d\n",(int)round(d)); // 25
    printf("%d\n",(int)round(e)); // -13

    return 0;
}

您可能还需要查看stdint. h

相关问题