VBA - Fonction Int

Le
Patrick
Bonjour,

Savez-vous pourquoi 8841312.7 - Int(8841312.7) a pour résultat
0.699999999254942 et non 0.7 ?

Y a-t-il une manière de contourner le problème ?

Merci pour votre aide.

--
Patrick
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Francois L
Le #19754421
Patrick a écrit :

Bonjour,

Round(8841312.7 - Int(8841312.7),1)

--
François L

Bonjour,

Savez-vous pourquoi 8841312.7 - Int(8841312.7) a pour résultat
0.699999999254942 et non 0.7 ?

Y a-t-il une manière de contourner le problème ?

Merci pour votre aide.



garnote
Le #19754401
Ave Patrick,

Je ne saurais te dire pourquoi mais essaie ceci :
Sub test()
Dim n As Single
n = 8841312.7 - Int(8841312.7)
MsgBox n
End Sub

Et dans une feuille de calcul :
ˆ41312,7-ENT(8841312,7)

Serge


"Patrick" news:
Bonjour,

Savez-vous pourquoi 8841312.7 - Int(8841312.7) a pour résultat
0.699999999254942 et non 0.7 ?

Y a-t-il une manière de contourner le problème ?

Merci pour votre aide.

--
Patrick


Patrick
Le #19754591
Bonjour,

Cette solution donne le bon résultat mais ne répond pas à mon besoin. Mon
but ultime est de vérifier combien un nombre a de décimales car il ne faut
pas qu'un utilisateur puisse entrer un nombre avec plus de 2 décimales. Si on
arrondie le nombre, on ne peut plus faire le contrôle. En plus dans le cas
présent le contrôle renvoit une erreur (il considère que le nombre a plus de
2 décimales) alors qu'il n'y a qu'une décimale.

Merci.

--
Patrick


"Francois L" wrote:

Patrick a écrit :

Bonjour,

Round(8841312.7 - Int(8841312.7),1)

--
François L

> Bonjour,
>
> Savez-vous pourquoi 8841312.7 - Int(8841312.7) a pour résultat
> 0.699999999254942 et non 0.7 ?
>
> Y a-t-il une manière de contourner le problème ?
>
> Merci pour votre aide.
>



Francois L
Le #19754681
Patrick a écrit :

Re,

La solution répondait à la question... qui n'était pas le problème !

J'aimerais bien savoir comment tu vérifies ton nombre de décimales pour
comprendre l'erreur que tu constates.

--
François L


Bonjour,

Cette solution donne le bon résultat mais ne répond pas à mon besoin. Mon
but ultime est de vérifier combien un nombre a de décimales car il ne faut
pas qu'un utilisateur puisse entrer un nombre avec plus de 2 décimales. Si on
arrondie le nombre, on ne peut plus faire le contrôle. En plus dans le cas
présent le contrôle renvoit une erreur (il considère que le nombre a plus de
2 décimales) alors qu'il n'y a qu'une décimale.

Merci.



Philippe.R
Le #19754811
Bonjour,
Excel effectue des conversions entre systèmes numériques lors du calcul,
d'où ce type de variation.
Si j'ai bien compris, tu souhaites contrôler un nombre de caractères saisis
et pour ce faire, le plus pratique sera peut être de passer par une saisie
au format texte, convertie après contrôle.
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"Patrick" news:
Bonjour,

Savez-vous pourquoi 8841312.7 - Int(8841312.7) a pour résultat
0.699999999254942 et non 0.7 ?

Y a-t-il une manière de contourner le problème ?

Merci pour votre aide.

--
Patrick


Patrick
Le #19754961
C'est finalement la solution que j'utilise.

Merci.

--
Patrick


"Philippe.R" wrote:

Bonjour,
Excel effectue des conversions entre systèmes numériques lors du calcul,
d'où ce type de variation.
Si j'ai bien compris, tu souhaites contrôler un nombre de caractères saisis
et pour ce faire, le plus pratique sera peut être de passer par une saisie
au format texte, convertie après contrôle.
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"Patrick" news:
> Bonjour,
>
> Savez-vous pourquoi 8841312.7 - Int(8841312.7) a pour résultat
> 0.699999999254942 et non 0.7 ?
>
> Y a-t-il une manière de contourner le problème ?
>
> Merci pour votre aide.
>
> --
> Patrick




Patrick
Le #19754971
Finalement je convertie le nombre en texte avec CStr et je vérifie où se
trouve le point. Cela fonctionne pour mon besoin.

Merci.

--
Patrick


"Francois L" wrote:

Patrick a écrit :

Re,

La solution répondait à la question... qui n'était pas le problème !

J'aimerais bien savoir comment tu vérifies ton nombre de décimales pour
comprendre l'erreur que tu constates.

--
François L


> Bonjour,
>
> Cette solution donne le bon résultat mais ne répond pas à mon besoin. Mon
> but ultime est de vérifier combien un nombre a de décimales car il ne faut
> pas qu'un utilisateur puisse entrer un nombre avec plus de 2 décimales. Si on
> arrondie le nombre, on ne peut plus faire le contrôle. En plus dans le cas
> présent le contrôle renvoit une erreur (il considère que le nombre a plus de
> 2 décimales) alors qu'il n'y a qu'une décimale.
>
> Merci.
>



Publicité
Poster une réponse
Anonyme