在 Java 中,把 double(双精度)转 int 常见有以下几种方式,但要注意精度丢失和溢出问题。
double d = 9.99;
int i = (int) d;
System.out.println(i); // 输出 9
✅ 特点:
double d = 9.99;
int i = (int) Math.round(d);
System.out.println(i); // 输出 10
✅ 特点:
long,需再转 intdouble d = 9.1;
int floor = (int) Math.floor(d); // 9
int ceil = (int) Math.ceil(d); // 10
floor:向下取整ceil:向上取整double d = 9.5;
int i = Integer.parseInt(String.valueOf((int) d));
double d = 1e20;
int i = (int) d; // 结果不可预期(溢出)
double d = Double.NaN;
int i = (int) d; // 0
if (d >= Integer.MIN_VALUE && d <= Integer.MAX_VALUE) {
int i = (int) Math.round(d);
}
如果你是 金融计算 / 金额处理,建议用 BigDecimal,我可以给你示例。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。