注意Mysql读取值很大的Double类型数据时会采用科学计数法 您所在的位置:网站首页 java处理科学计数法数据 注意Mysql读取值很大的Double类型数据时会采用科学计数法

注意Mysql读取值很大的Double类型数据时会采用科学计数法

2024-07-03 19:46| 来源: 网络整理| 查看: 265

休息了好久,今天终于开工了。一个同事年前写的一段代码,今天测试的时候出了点问题,便找到我,我看了看他的代码,大概知道了原因。他要做的功能是采取POI导出数据为Excle,而且年前测试也没发现什么问题,但是由于某些原因,需要我导部分测试数据给他,所以测试出现问题便找到了我。

说来也挺有意思,导给他的数据是今儿现造的,其中涉及的金额一项,我都设置的特别大,都是几亿几亿的造,导致他导出来的表格金额这一项,采用的是科学记数法,他也没想到,其中原因是因为Mysql读取值很大的Double类型数据时会采用科学计数法,让他打了日志看,他也发现了问题所在。那么,如何解决呢?

public static void main(String[] args) { Double dabo = 88664433210.88d; System.out.println(dabo); /** * 方法一 */ DecimalFormat df = new DecimalFormat(); df.setMaximumFractionDigits(2);// 设置小数位 String replace = df.format(dabo).replace(",", ""); //去掉千分符号 System.out.println(replace); /** * 方法二 */ java.text.NumberFormat nf = java.text.NumberFormat.getInstance(); nf.setGroupingUsed(false); String scoreStr = nf.format(dabo); System.out.println(scoreStr); /** * 方法三 */ NumberFormat numberFormat = NumberFormat.getNumberInstance(); numberFormat.setMaximumFractionDigits(0); numberFormat.setMinimumFractionDigits(0); numberFormat.setMaximumFractionDigits(2);// 设置小数位 String format = numberFormat.format(dabo).replace(",", ""); //去掉千分符号; System.out.println(format); }

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有