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" a écrit dans le message de 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
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. >
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.
>
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
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.
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.
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
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" a écrit dans le message de 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
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" <no.spam.patrick.fredin@iquebec.com> a écrit dans le message de
news:C8150D30-CF70-4042-9119-C903EC962717@microsoft.com...
Bonjour,
Savez-vous pourquoi 8841312.7 - Int(8841312.7) a pour résultat
0.699999999254942 et non 0.7 ?
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" a écrit dans le message de 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
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" a écrit dans le message de 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
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" <no.spam.patrick.fredin@iquebec.com> a écrit dans le message de
news:C8150D30-CF70-4042-9119-C903EC962717@microsoft.com...
> 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
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" a écrit dans le message de 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
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. >
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.
>
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. >