javascript - JSON stringify konverzija float u int


Koristim Node.js i ugrađeni JSON objekt za pretvaranje JSON objekta u niz. U objektu je

{ 
    weight : 1.0
}

Međutim, kada pretvorim u string i upišem u datoteku, izlaz je weight : 1.

Odgovor #1

Kao što je navedeno u ovom odgovoru na slično pitanje, i na ovoj MSDN stranici:

U JavaScriptu ne postoji pojam cijelog broja. Brojevi u JavaScriptu su „vrijednosti u formatu IEEE 754 s dvostrukom preciznošću od 64 bita“.

Otvorite konzolu vašeg web preglednika i upišite 1.0. Vidjet ćete da se ispisuje 1. Svi brojevi u JavaScriptu su brojevi s pomičnim zarezom, pa je vaš serijalizator jednostavno odlučio izostaviti nepotrebnu preciznost.

Odgovor #2

Zapravo, tvoj slučaj nije problem, 1 == 1.0 == 1.00 u Javascriptu i ako imaš vrijednost s pokretnim zarezom poput 1.55, stringify ti daje isto 1.55, ne 1.. Čak i tada, ako želiš da se napiše 1.0, promijeni vrijednost u string

Mislim staviti vrijednost u navodnike

{ 
    weight : "1.0"
}