用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - java代码库

数字有效小数第三位四舍五入

2016-09-16 作者: 云代码会员举报

[java]代码库

import javax.swing.JOptionPane;
public class Test
{
    public static void main(String[] args)
    {
        String s=JOptionPane.showInputDialog("请输入数字:");
        double a=Double.parseDouble(s);//转换成数字
        double b=a;//临时存储
        int p=0;//用于计算小数从0到出现第一位有效数字扩大了多少倍
        while(b<1)
        {
            b=b*10;
            p++;
        }//如果数字小于1,则扩大十倍,直到数字不小于1
        double c;
        double q;
        if(a<1)
        {
            q=1000;
            c=b*q;
        }//如果数字小于1,则将扩大过的数字再扩大1000倍,找到第三位有效小数的后一个数
        else
        {
            q=10000;
            c=b*q;
        }//如果数字不小于1,则数字扩大10000倍,找到第三位有效小数的后一个数
        double d=c;//临时存储
        if(c%10*10%10>=5)
        {
            d=(c%10-c%10*10%10/10)+1;
        }
        else
        {
            d=c%10-c%10*10%10/10;
        }
        //通过取余计算第三位有效小数的后一位数,并对取余后的小数进行四舍五入
        double f=q/10;//临时存储小10倍的q,便于下面循环里的计算使用
        if(d<5)
        {
            a=c/10-(c%10)/10;//先把小数第三位有效小数后面的部分舍去
            a=a/f/Math.pow(10,p);
        }
        else
        {
            a=(c/10-(c%10)/10)+1;
            a=a/f/Math.pow(10,p);
        }
        //判断第三位有效小数的后一位数是否小于5,如小于5,则舍去,如大于等于5,则在第三位有效小数上加1
        JOptionPane.showMessageDialog(null,"该数取三位有效小数后为:"+a);
        System.exit(0);
    }
}


网友评论    (发表评论)

共1 条评论 1/1页

发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...