Búsqueda de sitios web

javascript - conversión de float a int con JSON stringify


Estoy usando Node.js y el objeto JSON incorporado para convertir a cadena un objeto JSON. En el objeto está

{ 
    weight : 1.0
}

Sin embargo, cuando convierto a cadena y escribo en un archivo, la salida es peso: 1.

Respuesta #1

Como se indica en esta respuesta a una pregunta similar, y en esta página de MSDN:

No existe tal cosa como un entero en JavaScript. Los números en JavaScript son "valores de formato IEEE 754 de 64 bits de doble precisión".

Abre la consola de tu navegador web y escribe 1.0. Verás que se imprime 1. Todos los números en JavaScript son números de punto flotante, así que tu serializador simplemente decidió omitir la precisión innecesaria.

Respuesta #2

En realidad, el tuyo no es un problema, 1 == 1.0 == 1.00 en Javascript y si tienes un valor flotante como 1.55, entonces stringify te da lo mismo 1.55 no 1.. Incluso entonces, si quieres que se escriba 1.0, cambia el valor a cadena

Quiero decir, encierra el valor entre comillas dobles

{ 
    weight : "1.0"
}