Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Ecriture eronée d'une variable Single dans une feuille de calcul

O

Orage

Guest
J'écris une variable de type Single avec une macro Excel dans une case d'une feuille de calcul.

Lorsque je cherche à écrire un nombre avec fraction (par exemple 7.1) j'obtiens dans la feuille une valeur non exacte (ex: 7,09999990463256).

Quelqu'un sait-il:
1) D'où cela peut venir ?
2) Comment y remédier ?

Par avance merci.
 
G

gerald

Guest
Bonjour,

Tu peux passer en double précisions en remplacant "single" par "double".

La cause, il me semble que ça se situe très bas au niveau processeur mais je n'en suis plus très sûr.

Gérald
 
O

Orage

Guest
Bonjour,

Merci pour la réponse.

Le passage du type "Single" au type "Double" permet d'écrire les nombres avec fractions de manière plus correcte.

Il subsiste encore un problème d'arrondi (j'obtiens à un endroit 6,2 au lieu de 6,3 qui est la valeur exacte).

Je m'en tire avec la procédure suivante qui nettoie les cases juste après leur écriture.

Private Sub WritingCorrector()
Dim ValTst As Single
Dim ValFix As Integer

ValFix = Fix(ActiveCell.Value)
ValTst = ((ActiveCell.Value - ValFix) * 10)

If (ValTst > (Int(ValTst) + 0.5)) Then
ActiveCell.Value = Fix(ActiveCell.Value) - Int(-((ActiveCell.Value - Fix(ActiveCell.Value)) * 10)) / 10
Else
ActiveCell.Value = Fix(ActiveCell.Value) - Fix(-((ActiveCell.Value - Fix(ActiveCell.Value)) * 10)) / 10
End If
End Sub
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…