Fonction TRONQUE

Résolu
DC -  
Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

En voulant convertir des degrés en minutes, j'ai constaté un fonctionnement curieux de la fonction TRONQUE.
Normalement : 1,15 degrés décimaux = 1°9' (0,15 x 60 = 9)

TRONQUE(0,15*60) me donne bien 9
En revanche, ma formule s'écrit :
TRONQUE ((1,15-1)*60) et me donne 8 !

Avez-vous une idée de ce qui provoque un tel résultat ?

Merci de vos réponses.

2 réponses

  1. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 783
     
    Bonjour,

    Il s'agit d'un problème de précision des calculs lié à la représentation des nombres en virgule flottante.
    Voir : IEEE 754-2008
    0
    1. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 783
       
      PS : La fonction Tronque() est une des nombreuses méthodes d'arrondi (arrondi vers zéro sans décimale).

      Toutes les méthodes ont des avantages et des inconvénients !!!

      Plus de précisions ici : Les fonctions d'arrondi

      Cdlt
      Patrice
      0
  2. Gyrus Messages postés 3360 Statut Membre 526
     
    Bonjour,

    Pour appuyer la réponse de Patrice33740 (que je salue) :

    Si tu écris la formule :
    =(1,15-1)*60
    avec un format nombre et 14 décimales, tu obtiens le résultat 8,99999999999999
    Il est donc normal que TRONQUE renvoie 8.

    Une solution consiste à utiliser l'arrondi.
    =TRONQUE(ARRONDI((1,15-1)*60;2)) renvoie 9.

    A+
    0