Le Modulo en VB6 [Résolu]

elkasmi_ahmed 5 Messages postés jeudi 31 mars 2005Date d'inscription 13 septembre 2006 Dernière intervention - 13 sept. 2006 à 11:17 - Dernière réponse : econs 4066 Messages postés mardi 13 mai 2003Date d'inscription 23 décembre 2008 Dernière intervention
- 13 sept. 2006 à 11:27
    Bonjour tout le monde.
j veux calculer R1= t1 Mod 97 avec t1=2558100035900 ( le type de t1 est double)
mais un msg d'erreur s'affiche : dépassement de capacité.
R1 soit de type long ou double mais toujours le même problème.
Cordialement.
Ahmed.
Afficher la suite 

2 réponses

Répondre au sujet
Renfield 17307 Messages postés mercredi 2 janvier 2002Date d'inscription 18 janvier 2017 Dernière intervention - 13 sept. 2006 à 11:25
+3
Utile
le modulo, c'est "le reste de la division entière."

tu peux donc le remplacer par :

R1 = t1 - fix(t1 / 97) * 97

Renfield
Admin CodeS-SourceS- MVP Visual Basic
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Renfield
econs 4066 Messages postés mardi 13 mai 2003Date d'inscription 23 décembre 2008 Dernière intervention - 13 sept. 2006 à 11:27
+3
Utile
Salut,

Le problème a déjà été rencontré sur VBFRance. Voici la réponse qui a été apportée ce jour-là par us_30 :





L'utilisation de la fonction MOD ne fonctionne que dans la plage des
nombres en LONG. C'est à dire que tu peux l'utiliser avec des DOUBLE à
la condition de ne pas dépasser la limite 2147483647 (limite du type
LONG) alors que le type DOUBLE va au-delà.

Par conséquent, il
faut réécrire la fonction MOD, avec des instructions compatibles avec
le type DOUBLE, pour toute sa plage. Cette fonction peut être
programmée comme suit :

=

Function MOD2(ByVal D As Double, ByVal N As Double) As Double
'Renvoi le modulo de D et N pour des nombres jusqu'à Double
'contrairement à MOD d'Excel ou de VBA

'Converti en entierD Int(D): N Int(N)
'Calcul du reste
MOD2 = D - N * Int(D / N)

End Function



=

Manu
--------------------------------------------------------------------------------------------
Avant de poster un message, n'oubliez pas de consulter le reglement.
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de econs

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.