首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Java中舍入双整数到int?

如何在Java中舍入双整数到int?
EN

Stack Overflow用户
提问于 2018-03-15 05:36:33
回答 2查看 0关注 0票数 0

我需要在JAVA中将双值转换为int值,但是数值必须总是舍入。即99.99999999->99。

EN

回答 2

Stack Overflow用户

发布于 2018-03-15 14:35:32

转换为int隐式删除任何小数点。不需要调用Math.open()(假设为正数)

简单地键入(Int),例如:

代码语言:txt
复制
System.out.println((int)(99.9999)); // Prints 99

尽管如此,它确实有一个不同的行为Math.floor向负无穷远的方向旋转

票数 0
EN

Stack Overflow用户

发布于 2018-03-15 15:12:14

要将一个double转换为int并将其四舍五入到最接近的整数(即不同于典型的,(int)(1.8)并且(int)(1.2)它们都会向下舍入到 0并返回1),只需将0.5添加到double将要转换的值即可int

例如,如果我们有

代码语言:javascript
复制
double a = 1.2;
double b = 1.8;

然后,下面的x和y的类型转换表达式将返回下舍入值(x = 1y = 1):

代码语言:javascript
复制
int x = (int)(a);   // This equals (int)(1.2) --> 1
int y = (int)(b);   // This equals (int)(1.8) --> 1

但是通过给每一个加0.5,我们将获得我们在某些情况下(和)可能需要的四舍五入到最接近整数的结果x = 1y = 2

代码语言:javascript
复制
int x = (int)(a + 0.5);   // This equals (int)(1.8) --> 1
int y = (int)(b + 0.5);   // This equals (int)(2.3) --> 2

这种方法也可以让你控制的阈值,在其double被四舍五入后(int)类型转换。

代码语言:javascript
复制
(int)(a + 0.8);

以类型转换。这只会(int)a + 1在小数值大于或等于0.2时结束。也就是说,通过double在类型转换之前加上0.8,10.15和10.03将在(int)转换后降低到10 ,但是10.23和10.7将被舍入到11。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100003621

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档