Bonjour,
J'ai fait un script pour vérifier les RIB :
Le problème vient du floor qui me retourne une mauvaise valeur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 #!/usr/bin/perl #use strict; #use warnings; use POSIX; use Math::BigInt; use Math::BigFloat; sub verif_rib() { my $rib = Math::BigFloat->new($_[0]); my $varControle = 97; my $retour = $rib*100; print $retour." RIB X 100\n"; $retour = Math::BigFloat->new($retour); $retour = $retour/$varControle; print $retour." RETOUR / VARCONTROLE\n"; $retour = Math::BigInt->new(floor($retour)); #$retour = floor($retour); print $retour." FLOOR \n"; $retour = $retour*$varcontrole; print $retour."\n"; $retour = ($rib*100)-$retour; print $retour."\n"; my $key = $varControle-$retour; return $key; } my $retour = &verif_rib('300020695200000057933'); print $retour."\n"; #&format_compte();
Avez-vous une idée ?
Merci
Fluxy__
Partager