Pagina 1 van 1

Javascript String -> Float

Geplaatst: 27 sep 2019, 10:13
door Argon
Hallo,

Vooreerst: ik ben geen programmeur maar gewoon iemand die iets in elkaar aan het flansen is :-)

Ik heb een TXT met volgende inhoud:

Code: Selecteer alles

26/09/2019 22:43-1.7795640419603396-14438.70640213025-2.090501603352704-16961.577429026634
in bovenstaande TXT gebruik ik een Delimiter -

Ik lees via FS de TXT in en aan de hand van de Split functie verkrijg ik volgende content:

Code: Selecteer alles

        fs.readFile('content.txt', 'utf8', function (err, contents) {       
            var words = contents.split('-');
            console.log(words[0]);
            console.log(words[1]);
            console.log(words[2]);
            console.log(words[3]);
            console.log(words[4]);
De console.log heeft mij dan volgende resultaten terug:

Code: Selecteer alles

26/09/2019 22:43
1.7795640419603396
14438.70640213025
2.090501603352704
16961.577429026634
Bovenstaande resultaten zijn dus nog altijd een String, maar ik had die graag omgezet naar een floating point (met 4 decimalen). De reden hiervoor is is dat ik words[1] wil optellen met words [3] alsook words[2] met words[4].

Ik heb al verschillende pogingen ondernomen, maar ik krijg het niet in orde. Via parseFloat krijg ik blijkbaar een String terug waardoor het niet mogelijk is om de som te maken van beide variabelen.

Ik wil dus het volgende bekomen:

Code: Selecteer alles

var totaal = words[1] + words[2]
met als resultaat: 3.8701
en NIET: 1.77956404196033962.090501603352704

Iemand die mij op weg kan helpen?

Bedankt!

Re: Javascript String -> Float

Geplaatst: 27 sep 2019, 10:35
door JamesEarlGray
https://duckduckgo.com/?q=javascript+st ... fab&ia=web

tweede link: https://stackoverflow.com/questions/642 ... javascript

tweede gesuggereerde oplossing: gebruik +() ipv parseFloat() omdat parseFloat ook ongeldige getallen zal parsen naar een float ipv een fout te geven, wat bugs kan veroorzaken.

Dus zo:

var totaal = +(words[1]) + +(words[2])

Re: Javascript String -> Float

Geplaatst: 27 sep 2019, 13:50
door Argon
Hmm, op Windows werkt dit inderdaad perfect.

Ik verplaats nu het script naar mijn Linux machine en daar faalt het plots :-(

Code: Selecteer alles

        fs.readFile('content.txt', 'utf8', function (err, contents) {
            //console.log(contents)
        
            var words = contents.split('-');
            //console.log(words[0]);
            //console.log(words[1]);
            //console.log(words[2]);
            //console.log(words[3]);
            //console.log(words[4]);

            var totaal1 = +(words[1]) + +(words[3])
            var totaal2 = +(words[2]) + +(words[4])


            console.log(totaal1)
            console.log(totaal2)
Output:

Code: Selecteer alles

NaN
NaN

Re: Javascript String -> Float

Geplaatst: 27 sep 2019, 13:51
door JamesEarlGray
Wordt het bestand nog steeds correct ingelezen in de words array?

Re: Javascript String -> Float

Geplaatst: 27 sep 2019, 14:10
door Argon
:oops: Permission error op het TXT bestand.
Alles werkt nu zoals het hoort. Bedankt ! ;-)