Comparer des valeurs qui vont au-delà du type Double
3 réponses
Christian Hubert-Hugoud / weabow - Xtrem7 - Groobax
Bonjour à tous,
J'ai un freeware qui copie des fichiers de grandes tailles.
Il fonctionne bien pour des fichiers inférieurs à 4 Go, mais au-delà, il ne
fonctionne pas car je compare des valeurs qui vont au-delà des capacité
Double ou Currency :
While Offset + LGBUFFER < Size
En fait Offset et Size doivent pouvoir "mesurer" plus de 4 Go.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Christian Hubert-Hugoud / weabow - Xtrem7 - Groobax
Merci.
Curieusement, j'ai fait des tests en ce sens et ils ne donnent pas les résultats. Je vais essayer à nouveau.
Dans la doc, le Double et le Currency sont codés sur 8 octets tous les 2.
Christian
"Jacques93" a écrit dans le message de news:
Bonjour Christian Hubert-Hugoud, Christian Hubert-Hugoud / weabow - Xtrem7 - Groobax a écrit :
Bonjour à tous,
J'ai un freeware qui copie des fichiers de grandes tailles.
Il fonctionne bien pour des fichiers inférieurs à 4 Go, mais au-delà, il ne fonctionne pas car je compare des valeurs qui vont au-delà des capacité Double ou Currency :
While Offset + LGBUFFER < Size
En fait Offset et Size doivent pouvoir "mesurer" plus de 4 Go.
Une idée ?
Christian
Bien qu'il n'aient pas été conçus dans ce but (à l'époque les disques et 4 Go étaient plutôt rares) , il y a Currency, ou Decimal Currency (entier à décalage) 8 octets -922 337 203 685 477,5808 à 922 337 203 685 477,5807
Decimal 14 octets +/-79 228 162 514 264 337 593 543 950 335 sans séparateur décimal ; +/-7,9228162514264337593543950335 avec 28 chiffres à droite du séparateur décimal ; le plus petit nombre différent de zéro est +/-0.0000000000000000000000000001.
--
Cordialement,
Jacques.
Merci.
Curieusement, j'ai fait des tests en ce sens et ils ne donnent pas les
résultats. Je vais essayer à nouveau.
Dans la doc, le Double et le Currency sont codés sur 8 octets tous les 2.
Christian
"Jacques93" <jacques@Nospam> a écrit dans le message de
news:upmOeLebKHA.1028@TK2MSFTNGP06.phx.gbl...
Bonjour Christian Hubert-Hugoud,
Christian Hubert-Hugoud / weabow - Xtrem7 - Groobax a écrit :
Bonjour à tous,
J'ai un freeware qui copie des fichiers de grandes tailles.
Il fonctionne bien pour des fichiers inférieurs à 4 Go, mais au-delà, il
ne fonctionne pas car je compare des valeurs qui vont au-delà des
capacité Double ou Currency :
While Offset + LGBUFFER < Size
En fait Offset et Size doivent pouvoir "mesurer" plus de 4 Go.
Une idée ?
Christian
Bien qu'il n'aient pas été conçus dans ce but (à l'époque les disques et
4 Go étaient plutôt rares) , il y a Currency, ou Decimal
Currency
(entier à décalage) 8 octets -922 337 203 685 477,5808 à 922 337 203 685
477,5807
Decimal 14 octets +/-79 228 162 514 264 337 593 543 950 335 sans
séparateur décimal ;
+/-7,9228162514264337593543950335 avec 28 chiffres à droite du séparateur
décimal ; le plus petit nombre différent de zéro est
+/-0.0000000000000000000000000001.
Curieusement, j'ai fait des tests en ce sens et ils ne donnent pas les résultats. Je vais essayer à nouveau.
Dans la doc, le Double et le Currency sont codés sur 8 octets tous les 2.
Christian
"Jacques93" a écrit dans le message de news:
Bonjour Christian Hubert-Hugoud, Christian Hubert-Hugoud / weabow - Xtrem7 - Groobax a écrit :
Bonjour à tous,
J'ai un freeware qui copie des fichiers de grandes tailles.
Il fonctionne bien pour des fichiers inférieurs à 4 Go, mais au-delà, il ne fonctionne pas car je compare des valeurs qui vont au-delà des capacité Double ou Currency :
While Offset + LGBUFFER < Size
En fait Offset et Size doivent pouvoir "mesurer" plus de 4 Go.
Une idée ?
Christian
Bien qu'il n'aient pas été conçus dans ce but (à l'époque les disques et 4 Go étaient plutôt rares) , il y a Currency, ou Decimal Currency (entier à décalage) 8 octets -922 337 203 685 477,5808 à 922 337 203 685 477,5807
Decimal 14 octets +/-79 228 162 514 264 337 593 543 950 335 sans séparateur décimal ; +/-7,9228162514264337593543950335 avec 28 chiffres à droite du séparateur décimal ; le plus petit nombre différent de zéro est +/-0.0000000000000000000000000001.
--
Cordialement,
Jacques.
Christian Hubert-Hugoud / weabow - Xtrem7 - Groobax
Merci pour cette précision essentielle.
"Jean-marc" a écrit dans le message de news:4b0d8544$0$2863$
Christian Hubert-Hugoud / weabow - Xtrem7 - Groobax wrote:
Bonjour à tous,
J'ai un freeware qui copie des fichiers de grandes tailles.
Il fonctionne bien pour des fichiers inférieurs à 4 Go, mais au-delà, il ne fonctionne pas car je compare des valeurs qui vont au-delà des capacité Double ou Currency :
While Offset + LGBUFFER < Size
En fait Offset et Size doivent pouvoir "mesurer" plus de 4 Go.
Le type currency est parfaitement adapté.
Dim c As Currency
' byte * kilo * mega * giga * tera c = CCur(1) * CCur(1024) * CCur(1024) * CCur(1024) * CCur(1024) Debug.Print c
Voila dans c la valeur pour 1 TERA (1000 GIGA) :
1099511627776
Note: Les appels à CCur() dont obligatoires, sinon : overflow
"Jean-marc" <jm@nowhere.invalid> a écrit dans le message de
news:4b0d8544$0$2863$ba620e4c@news.skynet.be...
Christian Hubert-Hugoud / weabow - Xtrem7 - Groobax wrote:
Bonjour à tous,
J'ai un freeware qui copie des fichiers de grandes tailles.
Il fonctionne bien pour des fichiers inférieurs à 4 Go, mais au-delà,
il ne fonctionne pas car je compare des valeurs qui vont au-delà des
capacité Double ou Currency :
While Offset + LGBUFFER < Size
En fait Offset et Size doivent pouvoir "mesurer" plus de 4 Go.
Le type currency est parfaitement adapté.
Dim c As Currency
' byte * kilo * mega * giga * tera
c = CCur(1) * CCur(1024) * CCur(1024) * CCur(1024) * CCur(1024)
Debug.Print c
Voila dans c la valeur pour 1 TERA (1000 GIGA) :
1099511627776
Note: Les appels à CCur() dont obligatoires, sinon : overflow
"Jean-marc" a écrit dans le message de news:4b0d8544$0$2863$
Christian Hubert-Hugoud / weabow - Xtrem7 - Groobax wrote:
Bonjour à tous,
J'ai un freeware qui copie des fichiers de grandes tailles.
Il fonctionne bien pour des fichiers inférieurs à 4 Go, mais au-delà, il ne fonctionne pas car je compare des valeurs qui vont au-delà des capacité Double ou Currency :
While Offset + LGBUFFER < Size
En fait Offset et Size doivent pouvoir "mesurer" plus de 4 Go.
Le type currency est parfaitement adapté.
Dim c As Currency
' byte * kilo * mega * giga * tera c = CCur(1) * CCur(1024) * CCur(1024) * CCur(1024) * CCur(1024) Debug.Print c
Voila dans c la valeur pour 1 TERA (1000 GIGA) :
1099511627776
Note: Les appels à CCur() dont obligatoires, sinon : overflow