如何在java中实现输出浮动数有效数字

        我在刷题时要求我在输出时按6位有效数输出,当时我也不会于是我在CSDN上搜索结果没找到有用的答案在浏览器上搜索就搜到了,废话不在说了,开始实现,希望能解决一些人的需求。

        首先我要介绍一些java的数学函数

Math.ceil(x);//浮点数x向上取整
Math.log10(x);//10的多少次方等于x
Math.pow(x,y);//x的y次方
Math.round(x);//对x四舍五入

         log10(x)不论输入的是整数还是浮点数输出的结果在放入Math.ceil()中求出的就为x的整数位的个数,我以代码的形式来演示。

        接下来在用要求有效数的位数n 减去整数位数就得到保留小数的位数,再将要保留的有效数全转换成整数,四舍五入后转化为小数。

        现在将所需功能写成方法

public static double get(double num, int n) {
    if(num == 0) {
        return 0;
    }

    double d = Math.ceil(Math.log10(num < 0 ? -num: num));//穿过来的可能为负数
    int power = n - (int) d;

    double wei = Math.pow(10, power);
    long shifted = Math.round(num*wei);
    return shifted/wei;
}

我的这崴脚的英语🤣🤣🤣

        如果要求6位有效数字调用方法get(x,6);就行了,到这就结束了,快去试试吧。

  • 7
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值