javascript - JSON stringify-konvertering af float til int


Jeg bruger Node.js og det indbyggede JSON-objekt til at omdanne et JSON-objekt til en streng. I objektet er

{ 
    weight : 1.0
}

Men når jeg konverterer til streng og skriver til en fil, er outputtet vægt : 1.

Svar #1

Som nævnt i dette svar på et lignende spørgsmål, og på denne MSDN-side:

Der findes ikke noget, der hedder et helt tal i JavaScript. Tal i JavaScript er "dobbeltpræcisions 64-bit format IEEE 754 værdier".

Åbn din webbrowsers konsol og skriv 1.0. Du vil se 1 blive vist. Alle tal i JavaScript er flydende kommatals-tal, så din serializer valgte simpelthen at udelade unødvendig præcision.

Svar #2

Faktisk er det ikke et problem for dig, 1 == 1.0 == 1.00 i Javascript, og hvis du har en floatværdi som 1.55, så giver stringify dig det samme 1.55 ikke 1.. Selv da, hvis du vil have 1.0 skrevet, skal du ændre værdien til en streng

Jeg mener, indsæt værdien i dobbelte anførselstegn

{ 
    weight : "1.0"
}