Ceci devrait répondre à ta question.
Code :
- #include <stdio.h>
- #include <math.h>
- int main()
- {
- float aFloat = -12.545f;
- int anInt = (int) floor(aFloat + 0.5);
- int anotherInt = (int) (aFloat + 0.5);
- printf("Floor: %d and Cast: %d\n",anInt, anotherInt);
-
- // You have to take care with negative numbers
- int yetAnotherInt = 0;
- if (aFloat >= 0)
- yetAnotherInt = (int) (aFloat + 0.5);
- else
- yetAnotherInt = (int) (aFloat - 0.5);
- printf("Floor: %d and Cast: %d\n",anInt, yetAnotherInt);
-
- return 0;
- }
|
Il n'y a pas que des nombres positifs dans la vie d'un programme...
La bonne conversion est donc:
(value >= 0) ? (int)(value + 0.5) : (int)(value - 0.5);
A+,
Message édité par gilou le 18-05-2013 à 15:31:09
---------------
There's more than what can be linked! -- Iyashikei Anime Forever! -- AngularJS c'est un framework d'engulé! --