如何在scala中处理json中的double



给定

{  "currency" : {
"details" : {
"data" : {
"code" : "INR",
"name" : "Indian Rupee",
"symbol" : "₹"
}
}
},
"amt" : 3.247913577689E10
}

问题:我在代码中得到的上述json作为响应,我取出amt,然后在文件中发回amt的数量。但问题是amt正在以科学的方式出现。我已经尝试了下面给出的代码

val paymentAmount = (json  "total_amount").extractOrElse(0.00).toString

它不起作用。我试过f插值,但对于最大的数字,它是四舍五入。如何处理?

我不知道你到底使用了什么json库,但它使用play json很容易解析

val json = """{
|    "currency": {
|        "details": {
|            "data": {
|                "code": "INR",
|                "name": "Indian Rupee",
|                "symbol": "₹"
|            }
|        }
|    },
|    "amt": 3.247913577689E10
|}
|""".stripMargin
def main(args: Array[String]): Unit = {
import play.api.libs.json._
val paymentAmount: Double = (Json.parse(json)  "amt").as[Double]
println(paymentAmount) // 3.247913577689E10
}

最新更新