读取和写入以.0结尾的JSON的浮点值

我有这个JSON文件:

{ "weight": 12.0, "values": [ 23.4, 16.5, 16.8, 5.0, 0.0, 0.0, 0.0 ] } 

如果我试图读取这个文件,然后写回(使用JSON.parseJSON.stringify

 const fs = require('fs') const json = JSON.parse(fs.readFileSync('test.json')) console.log(json) fs.writeFile('test2.json', JSON.stringify(json), (error) => { if (error) console.log(error) }) 

输出文件如下所示:

 { "weight": 12, "values": [ 23.4, 16.5, 16.8, 5, 0, 0, 0 ] } 

问题是如果float值以.0结尾。
但是我需要保留原来的这些值。

我可以以某种方式读取像string一样的float值,然后像float值那样写
(即使以.0结尾)?

PS Node.js v7.7.4

对于他们每个人你可以使用模数运算符( % )来确定它是否是一个整数,如果是这样,将其转换为一个string,并追加".0"的结尾:

 json.values.map(v => { return v % 1 === 0 ? v + ".0" : v }) 
 var json = { "weight": 12.0, "values": [ 23.4, 16.5, 16.8, 5.0, 0.0, 0.0, 0.0 ] } var result = json.values.map(v => { return v % 1 === 0 ? v + ".0" : v }) console.log(result);