java,强制转换数据类型报错

img

想用Java写一个正小数四舍五入的方法,强制转换数据类型不行,求师兄们帮帮忙,谢谢

double n = in.nextDouble();
你输入的5.6是浮点数,不是整型,不能用nextInt()

missmatch,类型不匹配,输入类型不对。修改成nextDouble()

参考GPT和自己的思路:

您好,对于这个问题,您可以使用Java中提供的BigDecimal类来完成正小数四舍五入的操作。直接进行强制类型转换可能会导致数据精度的问题。

以下是一个使用BigDecimal实现正小数四舍五入的示例代码:

import java.math.BigDecimal;

public class Main {

    public static void main(String[] args) {
        double num = 3.14159265358979323846; // 需要四舍五入的数
        int scale = 2; // 四舍五入的位数,保留两位小数

        BigDecimal bd = new BigDecimal(num); // 使用 BigDecimal 将浮点数转换为精度更高的数据类型
        bd = bd.setScale(scale, BigDecimal.ROUND_HALF_UP); // 进行四舍五入操作

        System.out.println(bd); // 输出结果:3.14
    }
}

在上述代码中,我们首先使用BigDecimal将需要四舍五入的数转换为精度更高的BigDecimal类型,然后使用setScale()方法进行四舍五入操作,最后将结果输出即可。

希望对您有帮助,谢谢!