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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • vscode中好用的插件_捷达VS5和捷途X95哪个好

    vscode中好用的插件_捷达VS5和捷途X95哪个好AutoRenameTag自动重命名配对的HTML/XML标签AutoCloseTag自动添加HTML/XML结束标签BracketPairColorizer高亮匹配代码块括号CodeRunner非常强大的一款插件,能够运行多种语言的代码片段或代码文件:C,C++,Java,JavaScript,PHP,Python,Perl,Ruby,Go等等,安装完……

    2022年9月28日
    2
  • bindService调用流程

    bindService调用流程时序图源码执行流程【ContextImpl.java】@OverridepublicbooleanbindService(Intentservice,ServiceConnectionconn,intflags){warnIfCallingFromSystemProcess();retu…

    2022年6月10日
    34
  • 图片爬虫

    图片爬虫参考视频学习,堆糖网图片爬虫"""1.URL2.模拟浏览器请求资源3.解析网页4.保存数据到本地"""importrequests#第三方库importurllib.parseimportjsonimportjsonpathurl=’https://www.duitang.com/napi/blog/list/by_search/?kw={}&s…

    2022年6月17日
    30
  • JavaScript——二叉树层序遍历

    JavaScript——二叉树层序遍历题目描述给你一个二叉树,请你返回其按层序遍历得到的节点值。(即逐层地,从左到右访问所有节点)。示例二叉树:[3,9,20,null,null,15,7], 3/\920/\157返回其层序遍历结果:[[3],[9,20],[15,7]]递归实现代码varlevelOrder=function(root){if(root===null)return[]l

    2022年5月21日
    51
  • stm32H747_STM32H743的cache

    stm32H747_STM32H743的cache一、H.264的来源和特点H.264是国际标准化组织(ISO)和国际电信联盟(ITU)共同提出的继MPEG4之后的新一代数字视频压缩格式,它即保留了以往压缩技术的优点和精华又具有其它压缩技术无法比拟的许多优点。 1.低码流和MPEG2和MPEG4ASP等压缩技术相比,在同等图像质量下,采用H.264技术压缩后的数据量只有MPEG2的1/8,MPEG4的1/3。 2.高

    2022年9月19日
    1
  • 数据库表设计之用户权限表[通俗易懂]

    数据库表设计之用户权限表[通俗易懂]需求分析1、管理员给用户分配权限,权限数据写到数据库中。2、认证服务在进行用户认证时从数据库读取用户的权限数据(动态数据)user:用户表,存储了系统用户信息,用户类型包括:学生、老师、管理员等role:角色表,存储了系统的角色信息,学生、老师、教学管理员、系统管理员等user_role:用户角色表,一个用户可拥有多个角色,一个角色可被多个用户所拥有menu:记录了菜单及菜单下的权限role_permission:角色权限表,一个角色可拥有多个权限,一个权限可被多个角色所拥有…

    2022年9月29日
    2

发表回复

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

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