假设:
double x = 15d;
我应该使用哪种转换方法:
int val = (int)x;
或者:
int val = new Double(x).intValue();
一方和另一方的优点是什么?
答案 0 :(得分:3)
new Double(x).intValue();
似乎(通常)效率较低,但我没有任何支持。实际上,无论哪种方式都没有功能优势。但是,我发现(int)x
更具可读性,这是一个显着的优势。
答案 1 :(得分:0)
我所知道的唯一区别是,在返回一个整数值(调用Double
)之前,第二个必须创建类.intValue()
的新对象。
您提到的第一个不必在返回整数值之前创建新对象。
这就是为什么我个人使用第一个:
int val = (int) x;
答案 2 :(得分:0)
在功能上,它们是等价的(产生相同的结果)。第二个是浪费(因为对象分配),而且可读性较差。没有理由使用它来支持(int) x
。
您也可以这样做:Integer.parseInt(String.format("%.0f", x))
,它也可以。仅仅因为你可以做某事,并不意味着你应该做。