en fait je ne comprends pas la conversion (voir post sur le dièse)
voici 2 valeurs numériques a convertir
1732584193 (considéré comme long par VB) et 4023233417 (considéré comme
double)
Voici le code utilisé pour la conversion, mais je ne le comprends pas
Public function unsignedToLong(value As Double) As Long
If value < 0 Or dbl_value > 4294967295# Then Error 6 '
If value <= 2147483647 Then ' 2^31 - 1
UnsignedToLong = value
Else
UnsignedToLong = value - 4294967296#
End If
End Function
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
Axel
> Public function unsignedToLong(value As Double) As Long If value < 0 Or dbl_value > 4294967295# Then Error 6 '
si la valeur est negative ou si elle est supérieur a 2 ^32 -1 , erreur, logique, si la variable ne rentre pas dans 32 bits, elle ne rentrera pas dans un long
If value <= 2147483647 Then ' 2^31 - 1
si la valeur est inférieur à la valeur maxi d un long d apres msdn, alors pas de "cast"
UnsignedToLong = value Else UnsignedToLong = value - 4294967296#
mais ca, je ne comprends pas.....
> Public function unsignedToLong(value As Double) As Long
If value < 0 Or dbl_value > 4294967295# Then Error 6 '
si la valeur est negative ou si elle est supérieur a 2 ^32 -1 , erreur,
logique, si la variable ne rentre pas dans 32 bits, elle ne rentrera pas
dans un long
If value <= 2147483647 Then ' 2^31 - 1
si la valeur est inférieur à la valeur maxi d un long d apres msdn, alors
pas de "cast"
UnsignedToLong = value
Else
UnsignedToLong = value - 4294967296#
> Public function unsignedToLong(value As Double) As Long If value < 0 Or dbl_value > 4294967295# Then Error 6 '
si la valeur est negative ou si elle est supérieur a 2 ^32 -1 , erreur, logique, si la variable ne rentre pas dans 32 bits, elle ne rentrera pas dans un long
If value <= 2147483647 Then ' 2^31 - 1
si la valeur est inférieur à la valeur maxi d un long d apres msdn, alors pas de "cast"
UnsignedToLong = value Else UnsignedToLong = value - 4294967296#