【发布时间】:2015-08-26 06:47:24
【问题描述】:
我将对象的Float 字段转换为json。并且值 0.6 转换为 Argonaut 的 0.6000000238418579。如何纠正?
简单的测试用例来检查这个:
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 我更新了问题以提供证据。