java中保留两位小数的方法_java float保留两位小数

java中保留两位小数的方法_java float保留两位小数项目中有一个小需求,两个整数相除,结果需要保留两位小数,即1.00、0.50这种数据格式。以下做法不行,因为两整数相除,小数点以后的数字会被截断,让运算结果为整数类型,intx=10;inty=20;inta=x/y;System.out.println(a);//输出0System.out.println(x/y);//输出0System.out.println((floa…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

项目中有一个小需求,两个整数相除,结果需要保留两位小数,即1.00、0.50这种数据格式。

以下做法不行,因为两整数相除,小数点以后的数字会被截断,让运算结果为整数类型,

int x = 10;

int y = 20;

int a = x/y;

System.out.println(a);

// 输出0

System.out.println(x/y);

// 输出0

System.out.println((float)(x/y));

// 输出0.0

此时需要运算结果为浮点数,则此时必须将两整数其一或是全部强制转换类型为浮点数,

float b = (float)x/y;

float c = x/(float)y;

float d = (float)x/(float)y;

System.out.println(b);

// 输出0.5

System.out.println(c);

// 输出0.5

System.out.println(d);

// 输出0.5

为了控制保留两位小数,需要进行格式化,

DecimalFormat df = new DecimalFormat(“0.00”);

String e = df.format(b); // 此处可以用上面b/c/d任意一种

System.out.println(e);

// 输出0.50

String e = df.format(a);

System.out.println(e);

// 输出0.00,由于a是int类型值,格式化之前x/y已经为整数0,因此此处只增加两位小数0

网上有一种写法,用了如下方法,他的含义是四舍五入,保留两位小数,但需要小数有值,

double a = new BigDecimal((float)10/20).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();

System.out.println(a);

// 输出0.5

double b = new BigDecimal((float)1/3).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();

System.out.println(f);

// 输出0.33

另外,float是单精度类型,精度是8位有效数字,内存分配4个字节,占32位,取值范围是10的-38次方到10的38次方,有效小数位6-7位。

对应double是双精度类型,精度是17位有效数字,取值范围是10的-308次方到10的308次方,double占用8个字节的存储空间。

默认小数都用double来表示,所以如果要用float的话,则应该在其后加上f,例如这么声明,

float z=1.3;

会报错误

Type mismatch: cannot convert from double to float

需要改为,

float z=1.3f;

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/189950.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Pychram引入conda环境[通俗易懂]

    Pychram引入conda环境[通俗易懂]Pychram引入conda环境一、前言考虑到:①pycharm比Spyder功能全面,②anaconda的环境配置方便,这两个因素,所以想要在pycharm上引入condaenvironment,充分利用Anaconda的库函数。二、导入步骤1.创建一个project,并在File栏中,点击settings…,进入设置界面2.在setting界面下,找到当前工程,并选中其中的PythonInterpreter3.点击右上角的齿轮图表4.在弹出的会话框中,选中Add…5.在Ad

    2022年8月26日
  • 食品生物技术学计算机吗,食品生物技术「建议收藏」

    食品生物技术学计算机吗,食品生物技术「建议收藏」三、教学任务食品生物技术系主要承担本科生的课程如下:生物化学、微生物学、食品营养与卫生学、食品生物技术、实验设计与数据处理、综合性实验课等课程。承担生物化工和食品科学专业研究生高等生物化学、高等微生物学、实验动物学、现代生物技术等课程。四、主要研究方向与内容  食品生物技术系主要从事与食品生物技术方向的教学、科研及甜菜分子生物学方向的科研、研究生培养工作。1.食品分子营养与安全1.1食品分子营养学…

    2022年7月11日
  • html可视化布局工具_iframe嵌套多个页面

    html可视化布局工具_iframe嵌套多个页面使用易优cms如何分栏目调用栏目banner图呢,下面小编就给大家提供一个方法来实现。1.先再后台添加栏目字段。1.高级选项,2.字段管理,3.栏目字段,4.新增字段 2.新增字段,字段标题“栏目banner图”,字段名称“banner”,字段类型“单张图”3.模板标签的调用。添加完成后,我们在模板文件里找到图片相对应的代码,填写为我们新增的字段代码即可。当前栏目banner图:{$ey…

    2022年10月6日
  • python接口自动化实战(框架)

    python接口自动化实战(框架)    python接口测试的原理,就不解释了,百度一大堆。   先看目录,可能这个框架比较简单,但是麻雀虽小五脏俱全。各个文件夹下的文件如下:一.理清思路   我这个自动化框架要实现什么   1.从excel里面提取测试用例   2.测试报告的输出,并且测试报告得包括执行的测试用例的数量、成功的数量、失败的数量以及哪条成功了,失败的是哪一个,失败的原因是什么;测试结果的总体情况通过图表…

    2022年11月2日
  • ViewStub详解

    ViewStub详解首先上源码:packageandroid.view;importandroid.annotation.IdRes;importandroid.annotation.LayoutRes;importandroid.content.Context;importandroid.content.res.TypedArray;importandroid.graphics.Canvas;importandroid.util.AttributeSet;importandroid.widg

    2022年6月28日
  • 理解GC

    理解GC

    2021年9月7日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号