web-dev-qa-db-ja.com

doubleをCで最も近い小さいintに切り捨てる方法は?

私はダブルを持っています:

double d = 25.342;

どうすれば25値に変換できますか?

-12.46の場合、-13を取得します。

15
Manuel Aráoz
int i = (int)floor(25.342);
30
AraK
int i = (int)floor(25.342);

これは12.99999を12に変換することに注意してください。

参照:

http://www.codecogs.com/reference/c/math.h/floor.php

15
soru

ここで、xは25.342です

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

1
Mike
#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もご覧ください。

1
Alessandro L.