Javascript parseFloat Culture problem

When you write a page in a italian culture or any culture that use , instead . as a decimal number, parseFloat will truncate the result.
So if you need to perform some operation by javascript you need to convert the textbox value to a valid value.
Use this code:

function parseFloatCulture(str) {
    if (typeof str === "number") {
        return str;
    }

    var ar = str.split(/\.|,/);

    var value = '';
    for (var i in ar) {
        if (i > 0 && i == ar.length - 1) {
            value += ".";
        }
        value += ar[i];
    }
    return Number(value);
}

function floatCultureToString(val) {
    return val.toString().replace('.', ',');
}

call parseFloatCulture to convert the textbox value in float, perform your operation and use floatCultureToString if you need to show the result value on the page.

Annunci

Informazioni su Andrea Regoli

Project Manager .Net Developer WPF WP7 Asp.Net c# javascript ajax SQL sharepoint
Questa voce è stata pubblicata in javascript e contrassegnata con , . Contrassegna il permalink.

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...