Autore Topic: Blocco dell'IDE al primo avvio?  (Letto 3849 volte)

Offline leo72

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 2.163
    • Mostra profilo
    • http://www.leonardomiliani.com
Re: Blocco dell'IDE al primo avvio?
« Risposta #15 il: 06 Aprile 2009, 11:33:16 »
Ah, ieri ho trovato un bug nel parser del codice.
Se scrivete:
Codice: [Seleziona]

i = Int(Rnd(0,10)) MOD 3

ottenete un bel "Type mistmatch error: wanted Integer, got Float instead".

Se invece scrivete:
Codice: [Seleziona]

i = Int(Rnd(0,10))
i = i MOD 3

va tutto liscio...
In pratica è come se la funzione Int fosse eseguita dopo il Mod sul risultato di Rnd, anche se le parentesi dicono di fare il contrario.

P.S.:
segnalato anche questo... vedremo
Visita il mio sito personale: http://www.leonardomiliani.com

Offline leo72

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 2.163
    • Mostra profilo
    • http://www.leonardomiliani.com
Re: Blocco dell'IDE al primo avvio?
« Risposta #16 il: 06 Aprile 2009, 18:02:12 »
Uhm...
Non ho ancora visto la risposta sulla mailing list ma credo di aver capito il problema.
Int può restituire anche un Float, semplicemente restituisce la _parte_ intera di un numero, non un intero. Per avere un intero bisogna usare CInt(), mi sono dimenticato di questa funzione.
Visita il mio sito personale: http://www.leonardomiliani.com

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: Blocco dell'IDE al primo avvio?
« Risposta #17 il: 07 Aprile 2009, 12:15:15 »
Mi hai anticipato...
Infatti le funzioni di conversione tra tipi iniziano con "C"; le altre accettano parametri generici, e restituiscono altrettanto, quindi molto presumibilmente ritornano lo stesso tipo di dato.

Offline Ceskho

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 3.778
  • Vi Veri Veniversum Vivus Vici
    • Mostra profilo
    • Pagina Personale
Re: Blocco dell'IDE al primo avvio?
« Risposta #18 il: 08 Aprile 2009, 14:26:00 »
Citazione

leo72 ha scritto:
Ah, ieri ho trovato un bug nel parser del codice.
Se scrivete:
Codice: [Seleziona]

i = Int(Rnd(0,10)) MOD 3

ottenete un bel "Type mistmatch error: wanted Integer, got Float instead".


e se invece scrivi:

Codice: [Seleziona]

i = (Int(Rnd(0,10))) MOD 3


Non ricordo ora con quale priorità vengono eseguite le operazioni....il problema potrebbe essere anche dato da quello...