java double类型保留小数和四舍五入
建议方法:用Bigdecimal来处理浮点数的加减
例如:
import java.math.BigDecimal;
import java.util.*;public class Main{public static void main(String ags[]){Scanner cn=new Scanner(System.in);double t=0.011115;double r=0.012222;BigDecimal q=new BigDecimal(String.valueOf(t) );BigDecimal w=new BigDecimal(String.valueOf(r)); System.out.println(q.add(w).setScale(4,BigDecimal.ROUND_HALF_UP ));/*q.multiply(w); 乘法q.abs(); q.divide(w); 除法q.subtract(w); 减法*///通过转化成bigdecimal的一个实例,然后可以加减乘除,通过setScale方法,第一个参数数设置保留的位数//第二个参数是保留的形式 BigDecimal.ROUND_HALF_UP 是4舍5入比较常用//还有如下的保留方式,但是不常用/*setScale(1)表示保留一位小数,默认用四舍五入方式 setScale(1,BigDecimal.ROUND_DOWN)直接删除多余的小数位,如2.35会变成2.3 setScale(1,BigDecimal.ROUND_UP)进位处理,2.35变成2.4 setScale(1,BigDecimal.ROUND_HALF_UP)四舍五入,2.35变成2.4setScaler(1,BigDecimal.ROUND_HALF_DOWN)四舍五入,2.35变成2.3,如果是5则向下舍*/ }}
方法一:通过四舍五入方式保留特定后几位
import java.util.*;
public class Main
{
public static void main(String args[])
{
double t=1.123456;
System.out.println((double)Math.round(t*100000)/100000); //5个零
}
}
输出:1.12346(四舍五入了)
说明:这种方式通过强制输出double类型,同时注意这里有乘上几个零就是保留几个小数。如果改成Math.round(t*100)/100,这样就会输出1.12
方法二:通过四舍五入保留小数
import java.util.*;
import java.text.DecimalFormat;public class Main {public static void main(String[] args) {double t=1.123456;System.out.println(new DecimalFormat("0.0000").format(t)); //英语中:Decimal---十进制的 Format----格式化}
}
输出:1.1235
说明:这是调用了text.DecimalFormat,在输出时候,将数字格式化了,其实(“0.0000”)就是格式的模版,输出4个小数,会自动四舍五入,改成(“0.0”)就会输出1.1,改成(“00.000”)会自动补位输出01.123
方法三:通过四舍五入保留小数
import java.util.*;public class Main {public static void main(String[] args) {double t = 1.123456;String str = String.format("%.4f", t);System.out.println(str);}
}
输出:1.1234
说明:通过转换成字符串的方式输出小数点后几位,其中的(“%4f”)就是控制的输出的小数点的位数要求
方法四:不四舍五入保留小数
import java.util.*;public class Main {public static void main(String[] args) {double t = 1.123456;String str = String.valueOf(t);String str2="";for(int i=0;i<6;i++)str2=str2+str.charAt(i);System.out.println(str2);}
}
输出:1.1234
说明:本质就是强制转化成字符串,然后进行字符串的截取工作
java double类型保留小数和四舍五入相关推荐
- java double类型保留两位小数的几种方法
java double类型保留两位小数的几种方法 返回double类型的(转换比较方便) ①能四舍五入 double d = 114.145; d = (double) Math.round(d * ...
- double类型保留小数点后两位的几种方法
double类型保留小数点后两位的几种方法 返回double类型 返回double类型需要注意的是:如果结果为2020.10时,输出的值为2020.1,只保留了一位小数. //四舍五入double o ...
- c语言double保留2位小数0,c语言 double类型保留小数问题
c语言 double类型保留小数问题0 落寞的夕阳A2015.12.29浏览164次分享举报 用户输入希望保留小数的位数,1到16,怎么实现 int main(){ double a = 1.1234 ...
- java double类型保留位数、double转int
记录一下小知识 1.double保留小数点后一位 DecimalFormat df = new DecimalFormat("#.0"); df.format(0.999999); ...
- java double类型保留两位小数4种方法
4种方法,都是四舍五入,例:import java.math.BigDecimal;import java.text.DecimalFormat;import java.text.NumberForm ...
- java double类型保留三位小数
/**工具类,直接调用,啥也不用改* 提供精确的小数位四舍五入处理.* @param v 需要四舍五入的数字* @param scale 小数点后保留几位* @return 四舍五入后的结果*/pub ...
- 19-6/24作业: 将一个double类型的小数,按照四舍五入保留两位小数
☞要求 将一个double类型的小数,按照四舍五入保留两位小数 ☞实现方式 1.获得一个double类型的小数 2.使用BigDecimal包的setScale进行操作 3.输出结果 ☞代码内容 pa ...
- java double 保留小数_java使double类型保留两位小数的方法
java使double类型保留两位小数的方法 本文是百分网小编整理的主要介绍关于java使double类型保留两位小数的方法,有需要的朋友们一起看看吧!想了解更多相关信息请持续关注我们应届毕业生考试网 ...
- Java中double类型保留两位小数
java中对double类型的小数经常会有小数点后边保留一位小数或者保留两位小数的需求. javaAPi中提供了一个专门的类BigDecimal,用来对超过16位有效位的数进行精确的运算. 使用步骤: ...
最新文章
- C语言程序设计有哪几种结构,第章c语言程序设计的三种基本结构.ppt
- UA PHYS515 电磁理论I 麦克斯韦方程组基础3 麦克斯韦方程的势能形式
- 全国计算机等级考试题库二级C操作题100套(第75套)
- adb failed to start daemon 彻底解决
- mini2440驱动分析之ADC
- 复旦自考 网络专业 java 上机考_上海复旦大学自考方法及考试科目
- 【待完善】MongoDB - 数据模型
- Java动态规划走金字塔_【动态规划基础】数字金字塔
- FFmpeg总结(七)AV系列结构体之AVIOContext
- Flutter 修改自带Switch,实现轻量自定义Switch,使用screen_utils适配大屏
- NVIDIA,怎么查看显卡
- 2000-2020年上市公司制造业数据/制造业上市公司数据
- Android仿制知乎滑动广告条
- licode的ios最新版本的接入
- mysql error 1837_MySQL复制错误1837的相关缺陷一例——insert delay在GTID下异常binlog格式...
- AC自动机——棋局定式
- IB文学:戏剧作品中的对比手法
- 微信小程序之基于canvas绘制高铁线路图
- 安居客住房系统-基于Python-Django前后端分离开发(四)——户型、用户数据接口处理及其筛选
- 算法知识讲座--山东大学(威海)机信学院副院长贺红教授
热门文章
- Spice:基础概念
- java语法基础 - 第五部分
- 输入www.baidu.com背后发生了什么?
- 为什么企业和品牌一定要创建百度百科词条呢?
- unity Shader 入门精要 EX
- 全球区块链(智媒链)技术交流暨中国社区成立大会圆满结束
- Shell之常用命令(diff、path、cut、sort、uniq、tr、path)
- Flink的Sink_API_Demo (kafka sink 、redis sink 、es sink)
- Java基础02_运算
- netperf网络性能测试(TCP、UDP测试数据)