Avatar billede wedia Nybegynder
11. februar 2009 - 19:57 Der er 8 kommentarer og
1 løsning

problem med decimaler

Hej eksperter,

Jeg har en problem med at få decimaler jeg har en funktion som skal lægge penge beløb sammen med to decimaler. penge beløbene bliver hentet via ajax fra en xml fil som ser sådan her ud :

<root>
<product>
<price>149,95</price>
</product>
<product>
<price>149,95</price>
</product>
</root> 

og mit script ser sådan her ud

var product_nodes = xmldoc.getElementsByTagName("product");
var totalPrice = 0;
for (i = 0; i < product_nodes.length; i++) {
                   
var price = product_nodes[i].getElementsByTagName("price");
                       
totalPrice = Math.round((parseInt(price[0].firstChild.nodeValue)*parseInt(items[0].firstChild.nodeValue))) + Math.round( parseInt(totalPrice));
                       
                    }

men "totalPrice" giver 298, hvor er fejlen!
Avatar billede wedia Nybegynder
11. februar 2009 - 20:00 #1
Jeg har også prøvet med
totalPrice = Math.round((parseFloat(price[0].firstChild.nodeValue)*parseFloat(items[0].firstChild.nodeValue))) + Math.round( parseFloat(totalPrice));

og

totalPrice = (parseFloat(price[0].firstChild.nodeValue)*parseFloat(items[0].firstChild.nodeValue)) +  parseFloat(totalPrice);

med samme resultat
Avatar billede godskesen Nybegynder
11. februar 2009 - 20:03 #2
Prøv at skrive dine beløb på den amerikanske måde 149.95 istedet for 149,95. Det vil sige punktum istedet for komma...
Avatar billede fant0mas Nybegynder
11. februar 2009 - 20:24 #3
round !
Avatar billede olebole Juniormester
11. februar 2009 - 23:02 #4
<ole>

Når du hiver tal i dansk format ud på den måde og vil bruge dem til at regne med, kan du:

var tal = ELEMENT.firstChild.nodeValue.replace(",", ".");
tal = parseFloat(tal);

var tal2 = ELEMENT_2.firstChild.nodeValue.replace(",", ".");
tal2 = parseFloat(tal2);

total = String(Math.round(tal*tal2*100)/100);

INPUT.value = total.replace(".", ",");

/mvh
</bole>
Avatar billede wedia Nybegynder
12. februar 2009 - 08:26 #5
Det virker! smid et svar
Avatar billede olebole Juniormester
12. februar 2009 - 09:08 #6
;o)
Avatar billede olebole Juniormester
12. februar 2009 - 12:51 #7
Tak for points  =)
Avatar billede popeye82 Nybegynder
18. marts 2009 - 10:04 #8
Hej olebole,

Jeg er ikke helt skarp til JavaScript, men kan se at det er noget alla det du skriver jeg har brug for! Jeg har følgende scenarie hvor <!--@Ecom:Order.Weight--> bliver udfyldt fra mit cms. Mit problem er at denne variabel bliver udskrevet 0,22 og 1.000,22 hvis det er oppe i den tunge ende af vægtskalaen:
<script>
                                        var ordreVaegt = '<!--@Ecom:Order.Weight-->';                                       
                                                if(ordreVaegt > "15")
                                                {
                                                    document.getElementById('PostDanmark').innerHTML = '';
                                                }
<script>
Avatar billede olebole Juniormester
18. marts 2009 - 10:33 #9
Prøv at oprette et spørgsmål. Det er ikke til at vide, hvad du skal gøre uden mere info. Jeg vil dog umiddelbart mene, det er noget ret andet end spørgerens problem i denne tråd  =)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester