回答
其實你是不是在Javascript的問題,1 == 1.0 == 1.00
如果你有一個像1.55
浮點值那麼字符串化給你同樣的1.55 not 1
..即使這樣,如果你想1.0
寫入,將值更改爲字符串
我的意思是用雙引號值
{
weight : "1.0"
}
如果JSON文件是用於使用區分「1.0」和「1」的不同語言編寫的代碼,那麼這仍然是一個問題。 –
其實這可能是一個問題。例如。我們有一個json模式生成器,它使用來自javascript客戶端的數據。問題是,1.0生成器創建類型「數字」,但1創建「整數」。然後當數據改變時到1.2你驗證1.2對整數...失敗。 –
正如this answer注意到了類似的問題,並在this MSDN page:
有沒有這樣的事情在JavaScript整數。 JavaScript中的數字是「雙精度64位格式IEEE 754值」。
打開您的網絡瀏覽器的控制檯並鍵入1.0
。你會看到打印出1
。 JavaScript中的所有數字都是浮點數,所以您的序列化程序只是選擇了不必要的精度。
但是當我寫'JSON.stringify(0.1)',爲什麼它打印'0.1'而不是'0.1000000000000000055511151231257827021181583404541015625'?它遺漏了必要的精度 –
該數字不能表示爲64位浮點數。通常,浮點數不好表示不能用3.14159 ... * 2^n格式表示的數字,其中「...」代表少數數字,n不是很大。 –
- 1. 將int轉換爲float?
- 2. 將float轉換爲int
- 3. Haskell將Float轉換爲Int
- 4. 將FLOAT轉換爲INT
- 5. 將Float轉換爲Int
- 6. 將int轉換爲float/double
- 7. Lua:從float轉換爲int
- 8. 將float轉換爲int不起作用
- 9. 在F#中將float轉換爲int#
- 10. 在Julia Lang中將float轉換爲int
- 11. 如何將int轉換爲float?
- 12. 如何將int轉換爲float?
- 13. 將int轉換爲0-1 float
- 14. Haskell:將Float轉換爲Int(平均值)
- 15. 將org.bytedeco.javacpp.Mat轉換爲Java int/float數組
- 16. 錯誤:無法將'float(*)(int)'轉換爲'float'
- 17. 是否可以使用一行命令將[int,bool,float]轉換爲['int','bool','float']?
- 18. 字節爲int,float,NSString轉換
- 19. 如何從int轉換爲float?
- 20. 從列表<float>轉換爲int
- 21. Sql Cast從int轉換爲float
- 22. Sybase將float從float轉換爲varchar
- 23. Java將Arraylist <Float>轉換爲float []
- 24. 將NSData轉換爲Java float?
- 25. mysql將float轉換爲double
- 26. 將Mat轉換爲** float
- 27. 將float []轉換爲android.graphics.Matrix
- 28. 將double轉換爲float?
- 29. 將float(YYYY)轉換爲datetime
- 30. 將double [] []轉換爲float [] []
不知道是什麼問題。 JavaScript中的'1'和'1.0'是相同的東西。 – phenomnomnominal
使用'parseInt(obj.weight)' – Heavy
用1.5試試看,你會發現它實際上保留小數。 – techfoobar