Bonjour à tous,

je travaille actuellement sur l'arithmétique flottante pour un examen de fin d'année, et j'ai quelques problèmes sur la méthode pour arrondir les flottants dans les 4 modes d'arrondi définit par la norme IEEE 754.

- arrondi au plus près
- arrondi vers plus infini
- arrondi vers moins infini
- arrondi vers zéro

Ces 4 arrondis correspondent respectivement aux fonctions suivantes (lib math.h) :

- round()
- ceil()
- floor()
- trunc()

J'ai codé un petit programme qui permet de calculer les arrondis pour un nombre flottant donné :

$ ./float2bin 3.4655 5
3.4655000000
bin => 0 10000000 10111011100101011000001
-----
Arrondi vers le haut: dec => 3.4655100000 bin => 0 10000000 10111011100101011101010
Arrondi vers le bas: dec => 3.4655000000 bin => 0 10000000 10111011100101011000001
Arrondi au plus proche: dec => 3.4655000000 bin => 0 10000000 10111011100101011000001
Arrondi vers zéro: dec => 3.4655000000 bin => 0 10000000 10111011100101011000001
-----
Cela dit, j'ai beau comparer plusieurs résultats, lire beaucoup de documentation sur internet, mais je ne trouve pas la méthode ...

Alors si quelqu'un peut expliquer la méthode "mathématique" pour réaliser ces arrondis, je le remercie d'avance !!

Merci d'avance pour toutes les éventuelles réponses à ce sujet.