Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1501 connectés 

  FORUM HardWare.fr
  Programmation

  [VB] conversion de données -> integer

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[VB] conversion de données -> integer

n°104947
cerdoc
Comment l'AK47 à changé ma vie
Posté le 26-02-2002 à 12:26:43  profilanswer
 

par exemple j'ai une variable de type Double
je voudrais remplier une variable de type integer avec cette variable et si cette valeur de départ est plus grande que la limite du type Integer alors la variable integer vaut le maximun possible pour son type
 
dim Xinteger as integer
dim Xdouble as double
 
xdouble =34562882,322
xinteger =Cint(xdouble) ça par exemple ça marche pas  (overflow)
 
alors que je voudrais avoir xinteger=32767 (le max possible) même si c'est vrai il y a perte d'information .
 
pourquoi ? parce que je veux ensuite avec cette valeur integer dessiner a l'ecran , hors les fonction GDI accepter que des valeurs integer (pour les windows 9X en tout cas) ,donc faire comme une sorte de clipping car si j'appel une fonction avec une valeur trop grande ça trace n'importe quoi
 
par exemple une ligne de (0,0) à ( 170000,170000) ça devrait tracer à l'ecran la même ligne que (0,0) à (10000,10000) (en pixels) (meme si dans le premier cas  la mojorité de la ligne ets tracée hors ecran) -> et bein non !


---------------
I'm so crazy that sometime people think i'm clever.
mood
Publicité
Posté le 26-02-2002 à 12:26:43  profilanswer
 

n°104949
Lord II
PIB2000
Posté le 26-02-2002 à 12:32:46  profilanswer
 

Je crois que c'est normal :
 
voici la doc ( enfin la partie qui concerne cint et le pb ici mentionné)
 
CInt(expression)
 
L'argument expression peut être n'importe quelle expression de chaîne ou expression numérique.
 
RQ : Si l'argument expression passé à la fonction excède la plage de valeurs du type de données cible, une erreur se produit.


---------------
La bave du crapaud n'empèche pas la caravane de passer .
n°104953
cerdoc
Comment l'AK47 à changé ma vie
Posté le 26-02-2002 à 12:50:30  profilanswer
 

ok merci mais j'avais lu la doc aussi  ;)  
 
mon probleme en fait n'est pas de savoir pourquoi ça marche pas (on le sait tous les 2  ;) ) mais comment faire pour lorsque je fais la conversion mon integer soit "rempli" ( je crois d'ailleur que dans d'autre language (java?) la conversion de type fait ça automatiquement (avec perte d'information bien sur))


---------------
I'm so crazy that sometime people think i'm clever.
n°104955
Lord II
PIB2000
Posté le 26-02-2002 à 12:55:40  profilanswer
 

je pense qu'il faut que tu refasse une fonction qui verifierait si c'est une valeur exacte pour un int et sinon mets la valeur max dans le int.
 
je pense que c'est le plus simple et le plus rapide


---------------
La bave du crapaud n'empèche pas la caravane de passer .
n°104956
Carbon_14
Posté le 26-02-2002 à 12:59:00  profilanswer
 

Faudrait écrire une fonction  
integer Cint_New(xdouble as double)
telle que  
 
if (xdouble > 32767.0)
  return 32767
endif
 
if (xdouble < -32767.0)
  return -32768
endif
 
return Cint(xdouble)

n°104959
Lord II
PIB2000
Posté le 26-02-2002 à 13:01:27  profilanswer
 

Carbon_14 tu lui as tout fait c'est pas cool pour lui  :)


---------------
La bave du crapaud n'empèche pas la caravane de passer .
n°104961
cerdoc
Comment l'AK47 à changé ma vie
Posté le 26-02-2002 à 13:03:09  profilanswer
 

yep merci tout les 2
 
enfait j'ai deja fait ça :
 

Private Function long2int(value As Long) As Integer
 
If value > 32767 Then
    long2int = 32767
    Exit Function
End If
 
If value < -32768 Then
    long2int = -32768
    Exit Function
End If
 
long2int = CInt(value)
 
End Function

 
finalement c'est peut etre le + simple ...
 
merci tous les 2


---------------
I'm so crazy that sometime people think i'm clever.

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [VB] conversion de données -> integer

 

Sujets relatifs
[C++] Comment optimiser la place des données dans un ofstream?récuperer les données d'un formulaire [javascript] ds un fichier
Mise a jour d'une base de données a distance ASP / IISrecherche de soft de recuperation de données !
[C++ Builder 5] Conversion TStrings -> AnsiString[PHP] comment formater une date sur base de données
recuperation de donnees pour mise en page sur un formulairecrypter des données sur le réseau
Comment rapatrier une base de données MySQLjavascrip - formulaire et verification de saisie des données ! un pe
Plus de sujets relatifs à : [VB] conversion de données -> integer


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR