Visualizzazione risultati 1 fino 6 di 6

Discussione: Javascript: It's a bug!

  1. #1
    L'avatar di binarysun
    binarysun non è connesso Utente storico
    Data registrazione
    02-07-2004
    Messaggi
    2,017

    Predefinito Javascript: It's a bug!

    Provate ad eseguire questo codice javascript:

    Codice:
    var a = '07';
    var b = '08';
    
    alert(parseInt(a) + parseInt(b));


    La soluzione/discussione qua:
    http://www.debuggable.com/posts/7+8=...0-1fd0cbdd56cb
    "L'intelligenza è una pianta che va curata continuamente.
    Dovreste vedere com'è bello, il mio bonsai."
    Rat-man®

    [Gradient Text]
    [Su che server sei?]
    ->flickr

  2. #2
    Guest

    Predefinito

    Non è un bug...


    ciao!

  3. #3
    Guest

    Predefinito

    Beh, è normale, e oltretutto js non è l'unico linguaggio in cui 0n (dove n è una cifra da 0 a 7) rappresenta un numero ottale (anzi, è praticamente preso per convenzione che numeri che partono con 0 siano in sistema ottale e non decimale). Puoi fare anche lo stesso test provando con 0xF e 0xG (dove 0x rappresenta i numeri in formato esadecimale). Ovviamente il risultato sarà 0xF.

  4. #4
    L'avatar di binarysun
    binarysun non è connesso Utente storico
    Data registrazione
    02-07-2004
    Messaggi
    2,017

    Predefinito

    ???
    Parseint restituisce un int!

    aaaaaahhh capito è parseint fesso.
    Se inizia per 0 lo determina esadecimale.
    Mi piacerebbe sapere lo spicopatico che ha fatto questa funzione.

    Ripensandoci è un bug, o cmq un comprtamento pericoloso.
    Non programmo in javascript, ma immagino che
    07 (senza virgolette) è 7 esadecimale.
    "07" è 7 stringa che dovrebbe diventare 7 in decimale
    Ultima modifica di binarysun : 07-10-2009 alle ore 10.57.57
    "L'intelligenza è una pianta che va curata continuamente.
    Dovreste vedere com'è bello, il mio bonsai."
    Rat-man®

    [Gradient Text]
    [Su che server sei?]
    ->flickr

  5. #5
    Guest

    Predefinito

    EDIT: avevo leggermente sbagliato la descrizione, il link è molto più esauriente.
    Per maggiori informazioni su parseint() leggi qui: http://www.w3schools.com/jsref/jsref_parseInt.asp
    Ultima modifica di assimo : 07-10-2009 alle ore 11.57.13

  6. #6
    L'avatar di binarysun
    binarysun non è connesso Utente storico
    Data registrazione
    02-07-2004
    Messaggi
    2,017

    Predefinito

    If the string begins with "0", the radix is 8 (octal). This feature is deprecated
    Sene sono accorti pure loro della cazzata.
    "L'intelligenza è una pianta che va curata continuamente.
    Dovreste vedere com'è bello, il mio bonsai."
    Rat-man®

    [Gradient Text]
    [Su che server sei?]
    ->flickr

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •