Page 1 sur 1

error:invalid operand à la compilation

Publié : dim. 09/mai/2004 4:12
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.

Publié : dim. 09/mai/2004 10:59
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

Publié : lun. 10/mai/2004 9:32
par Fred
Effectivement, le NO STO est très suspect. Je vais regarder ca.