我使用的数据具有固定的5位精度。我希望在生成JsNumber时强制执行此操作,以便浮点不准确性不会产生任何.123450000000000001输出。
这可能吗?我还没有找到办法做到这一点。
答案 0 :(得分:3)
您可以定义自定义JsonWriter
来执行此操作(在您的协议中或具有更高优先级隐式范围的任何其他位置):
implicit object RoundedDoubleJsonWriter extends JsonWriter[Double] {
def write(d: Double) =
JsNumber(BigDecimal(d).setScale(4, BigDecimal.RoundingMode.HALF_UP)
}
将舍入模式/方法更改为品味。