int k2 = 15;
System.out.println(Math.sqrt(k2));
得到的结果是:3.872983346207417
请问怎么在得到结果的同时将浮点数转为int整数?
int k2 = 15;
System.out.println(Math.sqrt(k2));
得到的结果是:3.872983346207417
请问怎么在得到结果的同时将浮点数转为int整数?
4 回答1.2k 阅读✓ 已解决
4 回答1.2k 阅读✓ 已解决
1 回答2.5k 阅读✓ 已解决
2 回答705 阅读✓ 已解决
2 回答1.7k 阅读
2 回答1.6k 阅读
2 回答1.3k 阅读
Math.sqrt
的函数签名是所以在
int k2 = 15
的前提下Math.sqrt(k2)
是先把参数隐式转换成double
再执行,结果是double
。如果只取整数部分直接用
(int)
显式转换即可,即结果是
3
。如果需要四舍五入,用
Math.round()
,它有两个重载显然这里是
double
参数,返回long
,如果要变int
也需要(int)
强转,结果是
4
。在这个用例中,强转没有问题,因为
int
值开方之后的结果肯定比原值小,不会溢出。但是其他情况下将double
或long
强转成int
可能会溢出,产生不可预期的结果,比如结果是
-1
。