java double保留四位小数_double类型数据保留四位小数的另一种思路
来源:透析公式处理,有时候数据有很长的小数位,有的时候由在四位以内,如果用一般的处理方法,那么不足四位的小树会补充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类型数据保留四位小数的另一种思路相关推荐
- Java中double类型精度丢失的问题_double类型数据加减操作精度丢失解决方法_BigDecimal取整
BigDecimal在用double做入参的时候,二进制无法精确地表示十进制小数,编译器读到字符串"0.0000002"和"1.0000002"之后,必须把它转 ...
- java 内存分布_java的各类型数据在内存中分配情况详解_
1. 有这样一种说法,如今争锋于IT战场的两大势力,MS一族偏重于底层实现,Java一族偏重于系统架构.说法根据无从考证,但从两大势力各自的社区力量和图书市场已有佳作不难看出,此说法不虚,但掌握Jav ...
- Java操作Redis存储HashMap对象类型数据
背景描述 关于JAVA去操作Redis时,如何存储一个对象的数据,这是大家非常关心的问题,虽然官方提供了存储String,List,Set等等类型,但并不满足我们现在实际应用.存储一个对象是非常常见的 ...
- el-table大数据量渲染卡顿的一种思路
背景 现需要呈现一个表格,有近500行,30多列,使用vue+elementUI呈现. 这个数据量不算大,但可能列数比较多,渲染时速度很慢,滚动会有卡顿,使用体验不佳. 但并不想做分页处理,想要尽可能 ...
- 两个double相减_double类型相减有小数误差
如 :19.9-9.9=9.9999999999999,而不是10double相减会转换成二进制,因double有效位数为 16位这就会出现存储小数位数不够的情况,这种情况下就会出现误差 //两个Do ...
- java将数字转化为指定类型[float保留小数点确定、数字前加0]
有时候需要在数字前加0,比如说日期月份1月写成01月. 如下类便可以实现. package util;import java.math.BigDecimal; import java.text.Dec ...
- mysql double 转string类型转换_double类型转化成string
public static void main(String[] args) { double priceWithFreight = 1200.5698d; System.out.println(pr ...
- java string长度字节_java String类型数据的字节长度
utf-8以三个字节存储中文 gbk以二个字节存储中文 /** * 字节(UTF-8)长度计算 * * @param s * 所需计算字节 * @return 字节长度 * @throws Unsup ...
- 关于数据中台建设,“新旧”两种思路对比
数据中台是商业模式从IT时代进入DT时代的必然产物,是从流程驱动转向数据驱动的必然结果.以数据中台为导向,凭借数据证明或判断决策,形成数据服务思维,最终实现企业数字化转型. 数据中台建设模式颠覆了传统 ...
最新文章
- Closure Compiler 使用
- TCP为什么是3次握手?
- a标签跳页传参,以及截取URL参数
- Hadoop和大数据:60款顶级开源工具
- 这么写注释,老板会不会开除我?
- openstack-networking-neutron(一)---端到端和点到点的理解
- 宝马计算机考试答案,宝马BMW旅程电脑功能键的说明与测试程序
- php exif信息,php如何给jpg图片写入exif信息?
- 上调幅度3000-6000元 比亚迪新能源车型再次涨价
- 国家哲学社会科学文献中心
- 跟着杨中科学习asp.net之html
- 学校多媒体讲台计算机怎么开,标准多媒体教室多媒体使用方法
- java日期函数_java常用日期函数总结
- java程序员社招自我介绍
- pda通用扫描app_uni-app 如何调用PDA扫描?广播模式的调用??有什么办法吗?
- 金融风控领域算法比赛经验分享——翼支付杯大数据建模大赛-季军方案
- 起底Palantir:不愿被贴标签的硅谷神秘大数据公司
- HashMap原理以及TreeMap和Collections工具类(2022.6.10)
- 什么是IOC/DI?
- 富文本编辑器粘贴复制Word
热门文章
- 初入python世界——python基础语法
- DevOps 工程师成长日记系列四:打包
- 动态规划的递归写法和递推写法
- 模拟器安装不了apk,fail to start adbCheck settings to verify your chosen adb path is valid.
- 搜狗2012校招在线评测_信息编码程序
- AMBER“FATAL: Atom .R<SEP 552>.A<N 1> does not have a type.“
- matlab中有没有谱聚类,matlab – 谱聚类
- Python---元祖、循环
- 记一次 controller manager and scheduler 重复重启问题分析
- 训练MTCNN之前的环境以及依赖配置