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.
 
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

Statistiques des forums

Discussions
314 653
Messages
2 111 589
Membres
111 208
dernier inscrit
estalavista