用户注册



邮箱:

密码:

用户登录


邮箱:

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

发表随想


还能输入: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、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

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

加载中,请稍后...