【问题标题】:Adding BigDecimals with user input使用用户输入添加 BigDecimals
【发布时间】:2014-07-16 07:39:39
【问题描述】:

我在添加两个应该从用户那里获取的对象(BigDecimals)时遇到问题,即用户输入两个 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 变量?

【问题讨论】:

  • 为什么需要 MathContext?您可以在没有它的情况下添加两个 BigDecimal。
  • 您是否尝试过使用scan.nextBigDecimal(); 进行用户输入?

标签: java


【解决方案1】:

这应该会为你做的

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));
 } 
}

【讨论】:

  • 确实尝试过类似的事情,但我错过了 BigDecimal 库,很棒的东西。谢谢:)
【解决方案2】:
BigDecimal.valueOf(<string read in from command line>)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-31
    • 1970-01-01
    相关资源
    最近更新 更多