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
311 730
Messages
2 081 991
Membres
101 856
dernier inscrit
Marina40