javascript - převod float na int při JSON stringify
Používám Node.js a vestavěný objekt JSON k převedení JSON objektu na řetězec. V objektu je
{
weight : 1.0
}
Nicméně když převedu na řetězec a zapíšu do souboru, výstup je váha : 1.
Odpověď č. 1
Jak je uvedeno v této odpovědi na podobnou otázku a na této stránce MSDN:
V JavaScriptu neexistuje pojem celého čísla. Čísla v JavaScriptu jsou „hodnoty ve formátu IEEE 754 s dvojitou přesností a 64 bity“.
Otevřete konzoli svého webového prohlížeče a zadejte 1.0. Uvidíte, že se vypíše 1. Všechny čísla v JavaScriptu jsou čísla s plovoucí desetinnou čárkou, takže váš serializátor se jednoduše rozhodl vynechat zbytečnou přesnost.
Odpověď č. 2
Ve skutečnosti to není váš problém, 1 == 1.0 == 1.00 v Javascriptu a pokud máte hodnotu s plovoucí desetinnou čárkou, jako 1.55, pak stringify vám dá stejnou hodnotu 1.55, ne 1.. I přesto, pokud chcete, aby bylo napsáno 1.0, změňte hodnotu na řetězec
Myslím tím, že hodnotu vložte do dvojitých uvozovek
{
weight : "1.0"
}
