首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Java中将双精度型转换为整型

在Java中将双精度型转换为整型
EN

Stack Overflow用户
提问于 2011-06-24 21:48:30
回答 2查看 458K关注 0票数 128

在Java中,我想要将双精度数转换为整数,我知道如果您这样做:

代码语言:javascript
复制
double x = 1.5;
int y = (int)x;

你会得到y=1。如果你这样做:

代码语言:javascript
复制
int y = (int)Math.round(x);

你可能会得到2。然而,我想知道:由于整数的双精度表示有时看起来像1.9999999998或类似的东西,是否有可能通过Math.round()创建的双精度转换仍然会导致截断向下的数字,而不是我们正在寻找的四舍五入的数字(即:1而不是代码中表示的2)?

(是的,我确实是这样想的: x是否有任何值,其中y将显示x的截断表示而不是舍入表示的结果?)

如果是这样的话:有没有更好的方法让一个双精度数变成一个四舍五入的整数,而不会有被截断的风险?

我想起来了: Math.round(x)返回一个长整型,而不是双精度型。因此: Math.round()不可能返回一个类似于3.9999998的数字。因此,int(Math.round())将永远不需要截断任何内容,并且将始终有效。

EN

回答 2

Stack Overflow用户

发布于 2016-09-06 21:12:34

对于Double to int数据类型,您可以使用以下内容:

代码语言:javascript
复制
Double double = 5.00;

int integer = double.intValue();
票数 32
EN

Stack Overflow用户

发布于 2017-07-25 17:58:21

代码语言:javascript
复制
Double perValue = 96.57;
int roundVal= (int) Math.round(perValue);

解决了我的问题。

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

https://stackoverflow.com/questions/6468730

复制
相关文章

相似问题

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