使用用户输入添加BigDecimals

时间:2014-07-16 07:39:39

标签: java

我有问题添加两个应该从用户处获取的对象(BigDecimals),即用户输入两个大数字,在输出程序中应显示所有小数的精确结果。

I / O示例 输入: 的 3.14 3.143111 输出: 6.283111

我正在尝试使用名为BigDecimals的对象,但我无法使用典型的扫描程序功能,因为对象BigDecimal必须由某个值“启动”,我想将其保留为空,以便用户能够输入确切的浮点数。 我想使用BigDecimal而不是float类型,因为它更准确。 这里只是一个如何添加两个BigDecimals类型的例子,但我无法弄清楚如何输入上述对象的值。

import java.math.*;
import java.util.Scanner;


public class home {

public static void main(String[] args) {

  BigDecimal bg1,bg2,bg3;

  Scanner scan = new Scanner(System.in); 


  bg1 = new BigDecimal(3.14);
  bg2 = new BigDecimal(3.143111);



  MathContext mc = new MathContext(7);


  bg3=bg1.add(bg2,mc);


  System.out.println("Result is " + bg3);
 } 
}

如何按用户确定MathContext的值? 我是否应该在创建新对象MathContext时在括号()中添加一些int变量,该对象将由用户确定?

2 个答案:

答案 0 :(得分:5)

这应该为你做

import java.math.BigDecimal;
import java.util.Scanner;


public class home {

public static void main(String[] args) {
  Scanner scan = new Scanner(System.in); 
  BigDecimal bg1 = scan.nextBigDecimal();
  BigDecimal bg2 = scan.nextBigDecimal();

  System.out.println("Result is " + bg1.add(bg2));
 } 
}

答案 1 :(得分:0)

BigDecimal.valueOf(<string read in from command line>)