Problèmes de conversion de UINT en STRING – caractère étrange [en double]

Dino Anastos

Problèmes de conversion de UINT en STRING – caractère étrange [en double]


Cette question a déjà une réponse ici:

J’essaie d’utiliser la méthode uintToString pour convertir une uint en string mais j’obtiens toujours un caractère carré étrange devant la chaîne résultante.

Comment puis-je supprimer ce personnage, ou mieux encore comment puis-je l’empêcher d’apparaître en premier lieu?

 function  uintToString ( uint  v )  constant returns ( string  str )   { 
     uint  maxlength =   100 ; bytes memory reversed =   new  bytes ( maxlength ); 
     uint  i =   0 ; 
     while   ( v !=   0 )   { 
         uint  remainder =  v %   10 ; v =  v /   10 ; reversed [ i ++]   =   byte ( 48   +  remainder ); 
     } bytes memory s =   new  bytes ( i +   1 ); 
     for   ( uint  j =   0 ;  j <=  i ;  j ++)   { s [ j ]   =  reversed [ i -  j ]; 
     } str =   string ( s ); 
 } 

Réponses


 ivicaa

Vous avez un bug dans votre partie arrière. Après la fin de while , la valeur de i est la longueur du tableau et non l’indice du dernier élément.

 function  uintToString ( uint  v )  constant returns ( string  str )   { 
     uint  maxlength =   100 ; bytes memory reversed =   new  bytes ( maxlength ); 
     uint  i =   0 ; 
     while   ( v !=   0 )   { 
         uint  remainder =  v %   10 ; v =  v /   10 ; reversed [ i ++]   =   byte ( 48   +  remainder ); 
     } bytes memory s =   new  bytes ( i ); 
     for   ( uint  j =   0 ;  j <  i ;  j ++)   { s [ j ]   =  reversed [ i -  j -   1 ]; 
     } str =   string ( s ); 
 } 

 

-, #de, #en, caractère, Conversion, double, étrange, Problèmes, string, uint

 

yahoo

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *