【PTA】【Java】基本语法-浮点数计算(next() 与 nextLine() 区别,BigDecimal讲解)

计算机科学技术专业Java程序设计练习集

7-1 jmu-Java-02基本语法-05-浮点数计算 (10 分) 输入两个浮点数,

如 69.1 0.02 输出其和与乘积

输入样例:
69.1
0.02
1.99
2.01
输出样例:
69.12
1.382
4.00
3.9999

作者: 郑如滨 单位: 集美大学
时间限制: 400 ms 内存限制: 64 MB 代码长度限制: 16 KB


知识点
1.Scanner 类(next() 与 nextLine() 区别)讲解参考链接

    next():
    1、一定要读取到有效字符后才可以结束输入。
    2、对输入有效字符之前遇到的空白,next() 方法会自动将其去掉。
    3、只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符,next() 不能得到带有空格的字符串。
    nextLine()1、以Enter为结束符,也就是说 nextLine()方法返回的是输入回车之前的所有字符。
    2、可以获得空白。

2.Java BigDecimal讲解参考链接:

// BigDecimal类主要使用步骤
1.插入类    import java.math.BigDecimal;

2.构造对象  BigDecimal a1=new BigDecimal(a);//这里a的类型建议优先使用String

3.相关函数使用:b1.multiply(a1)4.输出结果:System.out.println(b1.multiply(a1));

3.提醒:在PTA上提交Java代码应该把public类名改成Main


代码
1.看到这题直观的做法(本代码是错的,提交不通过,原因见Java BigDecimal介绍)

import java.util.Scanner;
public class Practice1{//提交时记得修改类名为Main
	public static void main(String args[]){
		Scanner reader=new Scanner(System.in);
		double x=reader.nextFloat();
		double y=reader.nextFloat();
		System.out.println(x+y);
		System.out.println(x*y);
		//System.out.printf("%lf",x+y);
		//System.out.printf("%lf",x*y);
	}
}

2.使用BigDecimal的后的代码(运行正确)

import java.math.BigDecimal;
import java.util.Scanner;
public class P1
{
	public static void main(String args[])
	{
		Scanner reader=new Scanner(System.in);
		while(reader.hasNext())
		{
			String a=reader.nextLine();
			String b=reader.nextLine();
			BigDecimal a1=new BigDecimal(a);
			BigDecimal b1=new BigDecimal(b);
			System.out.println(b1.add(a1));
			System.out.println(b1.multiply(a1));
			///System.out.println(a1+b1);
			///System.out.println(a1*b1);
		}
	}
}


你可能感兴趣的:(Java)