在json输出的时候,当double类型的数值过大或者过小的时候,往会在内部被强制转化为科学计数法形式输出,如果不需要科学计数法,则可以通过使用BigDecimal类来表示double类型,代码如下:
Java版本:
import com.alibaba.fastjson.JSONObject;
import java.math.BigDecimal;
/**
* Created by zhoujm on 2020/4/1.
*/
public class TestJson {
public static void main(String[] args) {
JSONObject jsonObject = new JSONObject();
jsonObject.put("使用科学计数法", 2411188000888811111111124234.423424);
BigDecimal bd = new BigDecimal("2411188000888811111111124234.423424");
jsonObject.put("不使用科学计数法", bd);
System.out.println(jsonObject.toJSONString());
}
}
Scala版本:
import java.math.BigDecimal
import com.alibaba.fastjson.JSONObject
/**
* Created by zhoujm on 2020/4/1.
*/
object TestJson {
def main(args: Array[String]): Unit = {
val jsonObject = new JSONObject
jsonObject.put("使用科学计数法", 2411188000888811111111124234.423424)
val bd = new BigDecimal("2411188000888811111111124234.423424")
jsonObject.put("不使用科学计数法", bd)
println(jsonObject.toJSONString)
}
}
输出结果:
{"不使用科学计数法":2411188000888811111111124234.423424,"使用科学计数法":2.411188000888811E27}