在不进行强制转换的情况下,将双精度型转换为长型的最佳方法是什么?
例如:
double d = 394.000;
long l = (new Double(d)).longValue();
System.out.println("double=" + d + ", long=" + l);
发布于 2008-11-26 17:47:18
假设您对截断到零很满意,那么就强制转换:
double d = 1234.56;
long x = (long) d; // x = 1234
这将比通过包装器类更快-更重要的是,它更具可读性。现在,如果您需要舍入而不是“始终接近零”,那么您将需要稍微复杂一些的代码。
发布于 2008-11-26 17:49:07
..。这是不截断的舍入方法。急忙在Java API手册中查找它:
double d = 1234.56;
long x = Math.round(d); //1235
发布于 2008-11-26 17:49:07
(new Double(d)).longValue()
只在内部执行强制转换,所以没有理由创建一个双对象。
https://stackoverflow.com/questions/321549
复制相似问题