49 实数相加
作者: Turbo时间限制: 1S章节: 基本练习(字符串)
问题描述 :
计算两个实数相加的结果。
输入的实数满足如下要求: (1) 小数点前的整数部分最多100位,(2) 小数点后的小数部分最多100位.
输入说明 :
两行字符串,每行都是一个合法的实数。合法的意思是指: 整数部分的值如果大于零,则最高位数字必定大于零. 如果整数部分的值为零,则整数部分只有一个零. 小数部分尾部可以有任意多的零. 可以没有小数部分, 此时也没有小数点. 如果有小数点, 则至少需要有一位小数部分, 且允许是零.
输出说明 :
相加结果。注意: 小数部分末尾如果有连续的0, 则它们都是有效数字, 不能舍去. 如果是两个整数相加, 则结果仍为整数而没有小数部分.
输入范例 :
999999999991.001
8.99999999999999999999999
输出范例 :
1000000000000.00099999999999999999999
import java.math.BigDecimal;
import java.util.Scanner;
public class test_49 {
/**
* 49 实数相加
*/
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String a = sc.next().trim();
String b = sc.next().trim();
if(a.indexOf(".")==-1 && b.indexOf(".")==-1){
System.out.println(Integer.valueOf(a)+Integer.valueOf(b));
return;
}
BigDecimal t1 = new BigDecimal(a);
BigDecimal t2 = new BigDecimal(b);
System.out.println(t1.add(t2));
}
}