idea报错java.lang.Throwable: Progress subrange out of bounds: 1.0999999999999999
时间: 2024-05-30 18:16:50 浏览: 138
Java异常处理 Throwable实现方法解析
这个错误通常是由于使用了浮点数导致的。在IDEA中,进度条的范围是从0到1,如果使用了浮点数,可能会出现类似1.0999999999999999的值,这会导致进度条超出范围而报错。
解决方法:
1.使用整数代替浮点数,确保进度条的值在0到1之间。
2.使用Math.round()函数将浮点数四舍五入为整数。
3.使用DecimalFormat将浮点数格式化为整数。
4.使用BigDecimal类进行精确计算,确保进度条值在0到1之间。
例如:
double progress = 1.1;
int intProgress = (int) (progress * 100); //使用整数代替浮点数
intProgress = Math.round(progress * 100); //使用Math.round()函数四舍五入
DecimalFormat df = new DecimalFormat("#"); //使用DecimalFormat格式化浮点数
intProgress = Integer.parseInt(df.format(progress * 100));
BigDecimal bdProgress = new BigDecimal(progress); //使用BigDecimal进行精确计算
bdProgress = bdProgress.setScale(2, RoundingMode.HALF_UP);
intProgress = bdProgress.multiply(new BigDecimal(100)).intValue();
阅读全文