我將Float
對象的字段轉換爲json。並且價值0.6
由Argonaut轉換爲0.6000000238418579
。如何糾正?Argonaut.io錯誤的Float轉換
簡單的測試用例來檢查:
import argonaut.Argonaut._
import argonaut.EncodeJson
class Person(val name: Float)
val person = new Person(0.6f)
println("#1")
println(person.name)
def PersonEncodeJson: EncodeJson[Person] =
EncodeJson((p: Person) => ("name" := p.name) ->: jEmptyObject)
val json = person.asJson(PersonEncodeJson).nospaces
println("#2")
println(json)
控制檯輸出:
#1
0.6
#2
{"name":0.6000000238418579}
你怎麼知道這是argonaut的問題?你是否傳遞了一個字面'0.6'變成'0.6000000238418579'?大多數數字不能完全由浮點數表示。 – Simon
@Simon我更新了問題以提供證據。 – Lunigorn