error:invalid operand à la compilation

Archive.
Avatar de l’utilisateur
ZapMan
Messages : 460
Inscription : ven. 13/févr./2004 23:14
Localisation : France
Contact :

error:invalid operand à la compilation

Message par ZapMan »

Code : Tout sélectionner

Procedure.s StrFloat(Val.f) ; Convert float to string
  Result$=StrF(Val)
  While Right(Result$,1)="0"
    Result$=Left(Result$,Len(Result$)-1)
  Wend
  If Right(Result$,1)="."
    Result$=Left(Result$,Len(Result$)-1)
  EndIf 
  ProcedureReturn Result$
EndProcedure
b.l=5
a.s=StrFloat(~(b))
Je sais que ce bout de code n'est pas trés catholique, mais le compilateur est normalement capable de réaliser des conversions de types quand cela est nécessaire. Hors là, j'obtiens à la compilation :
PureBasic.asm[197]:
NO STO
error:invalid operand.
qui n'est pas des plus clair.

A noter que si je remplace la dernière ligne par a.s=StrFloat(b), tout se passe bien (le type entier est converti en float sans problème).
a.s=StrFloat(~5) fonctionne également.
Tout obstacle est un point d'appui potentiel.

Bibliothèques PureBasic et autres codes à télécharger :https://www.editions-humanis.com/downlo ... ads_FR.htm
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message par Le Soldat Inconnu »

Code : Tout sélectionner

Procedure.s StrFloat(Val.f) ; Convert float to string
  Result$ = StrF(Val)
  While Right(Result$, 1) = "0"
    Result$ = Left(Result$, Len(Result$) - 1)
  Wend
  If Right(Result$, 1) = "."
    Result$ = Left(Result$, Len(Result$) - 1)
  EndIf
  ProcedureReturn Result$
EndProcedure

b.l = 5
b = ~b
a.s = StrFloat(b)
comme ça, no problem :wink:
c'est quand même bizarre
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Fred
Site Admin
Messages : 2808
Inscription : mer. 21/janv./2004 11:03

Message par Fred »

Effectivement, le NO STO est très suspect. Je vais regarder ca.
Répondre