[javascript] - Pika v vejico

Pozdravljeni mojstri!

Prosil bi vas za eno pomoč pri Javascriptu. Namreč, na eni frontend zadevi imam najrenoe, da računa popust in končni znesek. Torej, uporabnik vpiše ceno, koliko popusta in se vse preračuna. Vse lepo in prav, imam samo problem z decimalkami. Nikakor in nikakor se ne morem znebiti PIKE, da bi jo dobil v VEJICO. Torej, recimo: 15.15€ bi rad računal v 15,15€ ... Iščem kot nor že en dan po netu in še nobene delujoče rešitve.

Primer recimo računanja:

$('#offer_value').keyup(function(event) {
                 var popust = $('#offer_discount').val();
                 popust = popust/100;
                 popust = $(this).val() * popust;
                 popust = popust.toFixed(2)
                 var final_price = $(this).val() - popust;
                 final_price = final_price.toFixed(2)
                 $('#offer_price').val(final_price);
                 $('#offer_save').val(popust);
    })

11 odgovorov

http://lmgtfy.com/?q=javascript+string+replace

1

Hja, Ledi to vem. Samo nastane problem ker mi potem zapiše z vejico v polje, pa mi računanje več ne dela prav. Dobivam NaN ven.

Sicer nisem javascrip strokovnjak, vendar bi morda poizkusil tako, da pred izračunom vejico spremeniš v pšiko s "str_replace", po izračunu pa iz pike narediš vejico.... zadeva bo delovala v obeh primerh, torej, če bo uporabnbik vpisal 15.15 ali 15,15.... edino, težava v tem primeru bo,če bo nedko vpisal 1.000,00.... tukaj pa bi bilo potrebno vgraditi malo bolj sofisticirano logiko...

v tem primeru je najbolje da poleg vnosnega polja das primer vpisa.
recimo "10.13", tako jim pokazes naj uporabijo . za decimalno locilo.

ce ne mores spremeniti vrednosti v stevilko pa javis napako. Zakaj bi se trudil z odpravljanjem takih banalnih napak. Vlozeno delo ne opravicuje podpore lenobe tvojih uporabnikov :)

3

Sem ze predlagal pa sem dobil vroc lonec po glavi. So me napizdili da v ameriki imajo piko v slo pa vejico. In da hocejo vejico :-)

Pred računom zamenjaj vejico s piko (še pred tem pa zamenjaj pike s praznimi vrednostmi, če imaš scenarij, ki ga je omenil 5ka, npr.: 1.000,00), po izračunu pa narediš obratno.

Ledi to je delo programerjev, da se trudijo in rešujejo probleme(napake.)=).

zaay123 išči pod javascript number format ali pa:
http://phpjs.org/functions/number_format:481

Zakaj preprosto ne uporabiš metode: tostring, replace, parseFloat. Se tako sikiraš zaradi performance-a.

Nisem rpeveril, samo bi moralo delovati:

<script type="text/javascript">

function fnumber(niz) {
if (niz.indexOf(",") > -1) { niz = niz.replace(/,/, "."); }
return parseFloat(niz);
}

var sum = fnumber('15,15') + 13.13;

document.write(sum);

</script>

2

Če predpostavim, da konvertaš iz našega zapisa v ameriški (tako da tudi js zna računat):
Najprej preveri, ali obstaja oboje in kaj je na prvem mestu - pika ali vejica.
Če je številka formata 0,000.00 potem za vsak slučaj samo odstraniš vejice.
V nasprotnem primeru piko zamenjaj v recimo #, nato pa vejico v piko. Nato pa še odstrani #

Je pa to (vsaj meni) lažje narediti v php, tako da razmisli, če ne bi ob vnosu (ali pa ob submitu) naredil ajax klica in popravil format vnosa številke