Come arrotondare per eccesso un doppio al più piccolo int più vicino in C?
Domanda
Ho un doppio:
double d = 25.342;
Come posso convertirlo nel valore 25
?
Se fosse -12.46
vorrei ottenere -13
.
Soluzione
int i = (int)floor(25.342);
Altri suggerimenti
int i = (int)floor(25.342);
Nota che questo convertirà 12.99999 in 12.
Rif:
Dove x è il tuo 25.342
int i = x > = 0? (int) (x + 0,5): (int) (x-0,5)
#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;
}
Potresti anche dare un'occhiata a stdint.h
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow