来源:透析公式处理,有时候数据有很长的小数位,有的时候由在四位以内,如果用一般的处理方法,那么不足四位的小树会补充0到第四位,这样子有点画蛇添足的感觉,不太好看。所以要根据小数的位数来处理判断。

思路:先把数的小数位和整数位分开成分别的数字字符串,判断小数字符串的长度,如果小于等于四位则直接把原来的数变成字符串返回;如果大于四位,则用字符串函数截取前四位,舍掉尾数。最后把整数部分和小数部分拼接起来返回,就完成了。

/**

* @描述:把计算结果根据小数点的位数截取合适的值。即如果小数点位数小于等于4则不做处理,如果大于四则取前四位

* @方法名: SubFourPoint

* @创建人:陈洋

* @创建时间:2018年6月25日下午2:24:40

* @param number

* @return

* @return String

*/

private static String SubFourPoint(double number) {

int aa = (int) Math.floor(number);//获取整数部分

String bb = String.valueOf(number).replaceAll("\\d+\\.", ""); //获取小数部分

String dd = "";

if(bb.length() > 4) {

String cc = bb.substring(0, 4);//截取前四位小数

if("0000".equals(cc)) {

dd = String.valueOf(aa);

}else {

dd = String.valueOf(aa)+"."+cc;

}

}else {

dd = String.valueOf(number);//不处理小数位,直接转成String类型

}

return dd;

}

扩展:其他的处理保留小数位的方法。

第一种:

java.text.DecimalFormat df =new java.text.DecimalFormat("#.00");

df.format(你要格式化的数字);

第二种:

double d = 3.1415926;

String result = String .format("%.2f",d);

第三种:

double x=23.5455;

NumberFormat ddf1=NumberFormat.getNumberInstance();

ddf1.setMaximumFractionDigits(2);

String s= ddf1.format(x) ;

java double保留四位小数_double类型数据保留四位小数的另一种思路相关推荐

  1. Java中double类型精度丢失的问题_double类型数据加减操作精度丢失解决方法_BigDecimal取整

    BigDecimal在用double做入参的时候,二进制无法精确地表示十进制小数,编译器读到字符串"0.0000002"和"1.0000002"之后,必须把它转 ...

  2. java 内存分布_java的各类型数据在内存中分配情况详解_

    1. 有这样一种说法,如今争锋于IT战场的两大势力,MS一族偏重于底层实现,Java一族偏重于系统架构.说法根据无从考证,但从两大势力各自的社区力量和图书市场已有佳作不难看出,此说法不虚,但掌握Jav ...

  3. Java操作Redis存储HashMap对象类型数据

    背景描述 关于JAVA去操作Redis时,如何存储一个对象的数据,这是大家非常关心的问题,虽然官方提供了存储String,List,Set等等类型,但并不满足我们现在实际应用.存储一个对象是非常常见的 ...

  4. el-table大数据量渲染卡顿的一种思路

    背景 现需要呈现一个表格,有近500行,30多列,使用vue+elementUI呈现. 这个数据量不算大,但可能列数比较多,渲染时速度很慢,滚动会有卡顿,使用体验不佳. 但并不想做分页处理,想要尽可能 ...

  5. 两个double相减_double类型相减有小数误差

    如 :19.9-9.9=9.9999999999999,而不是10double相减会转换成二进制,因double有效位数为 16位这就会出现存储小数位数不够的情况,这种情况下就会出现误差 //两个Do ...

  6. java将数字转化为指定类型[float保留小数点确定、数字前加0]

    有时候需要在数字前加0,比如说日期月份1月写成01月. 如下类便可以实现. package util;import java.math.BigDecimal; import java.text.Dec ...

  7. mysql double 转string类型转换_double类型转化成string

    public static void main(String[] args) { double priceWithFreight = 1200.5698d; System.out.println(pr ...

  8. java string长度字节_java String类型数据的字节长度

    utf-8以三个字节存储中文 gbk以二个字节存储中文 /** * 字节(UTF-8)长度计算 * * @param s * 所需计算字节 * @return 字节长度 * @throws Unsup ...

  9. 关于数据中台建设,“新旧”两种思路对比

    数据中台是商业模式从IT时代进入DT时代的必然产物,是从流程驱动转向数据驱动的必然结果.以数据中台为导向,凭借数据证明或判断决策,形成数据服务思维,最终实现企业数字化转型. 数据中台建设模式颠覆了传统 ...

最新文章

  1. Closure Compiler 使用
  2. TCP为什么是3次握手?
  3. a标签跳页传参,以及截取URL参数
  4. Hadoop和大数据:60款顶级开源工具
  5. 这么写注释,老板会不会开除我?
  6. openstack-networking-neutron(一)---端到端和点到点的理解
  7. 宝马计算机考试答案,宝马BMW旅程电脑功能键的说明与测试程序
  8. php exif信息,php如何给jpg图片写入exif信息?
  9. 上调幅度3000-6000元 比亚迪新能源车型再次涨价
  10. 国家哲学社会科学文献中心
  11. 跟着杨中科学习asp.net之html
  12. 学校多媒体讲台计算机怎么开,标准多媒体教室多媒体使用方法
  13. java日期函数_java常用日期函数总结
  14. java程序员社招自我介绍
  15. pda通用扫描app_uni-app 如何调用PDA扫描?广播模式的调用??有什么办法吗?
  16. 金融风控领域算法比赛经验分享——翼支付杯大数据建模大赛-季军方案
  17. 起底Palantir:不愿被贴标签的硅谷神秘大数据公司
  18. HashMap原理以及TreeMap和Collections工具类(2022.6.10)
  19. 什么是IOC/DI?
  20. 富文本编辑器粘贴复制Word

热门文章

  1. 初入python世界——python基础语法
  2. DevOps 工程师成长日记系列四:打包
  3. 动态规划的递归写法和递推写法
  4. 模拟器安装不了apk,fail to start adbCheck settings to verify your chosen adb path is valid.
  5. 搜狗2012校招在线评测_信息编码程序
  6. AMBER“FATAL: Atom .R<SEP 552>.A<N 1> does not have a type.“
  7. matlab中有没有谱聚类,matlab – 谱聚类
  8. Python---元祖、循环
  9. 记一次 controller manager and scheduler 重复重启问题分析
  10. 训练MTCNN之前的环境以及依赖配置