首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在不进行强制转换的情况下将双精度型转换为长整型?

如何在不进行强制转换的情况下将双精度型转换为长整型?
EN

Stack Overflow用户
提问于 2008-11-26 17:44:52
回答 7查看 356.1K关注 0票数 202

在不进行强制转换的情况下,将双精度型转换为长型的最佳方法是什么?

例如:

代码语言:javascript
复制
double d = 394.000;
long l = (new Double(d)).longValue();
System.out.println("double=" + d + ", long=" + l);
EN

回答 7

Stack Overflow用户

发布于 2008-11-26 17:47:18

假设您对截断到零很满意,那么就强制转换:

代码语言:javascript
复制
double d = 1234.56;
long x = (long) d; // x = 1234

这将比通过包装器类更快-更重要的是,它更具可读性。现在,如果您需要舍入而不是“始终接近零”,那么您将需要稍微复杂一些的代码。

票数 265
EN

Stack Overflow用户

发布于 2008-11-26 17:49:07

..。这是不截断的舍入方法。急忙在Java API手册中查找它:

代码语言:javascript
复制
double d = 1234.56;
long x = Math.round(d); //1235
票数 139
EN

Stack Overflow用户

发布于 2008-11-26 17:49:07

(new Double(d)).longValue()只在内部执行强制转换,所以没有理由创建一个双对象。

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

https://stackoverflow.com/questions/321549

复制
相关文章

相似问题

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