2014-07-16 6 views
1

У меня возникла проблема добавления двух объектов (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 на пользователя? Должен ли я просто добавить некоторую переменную int в скобках() при создании нового объекта MathContext, который будет определен пользователем?

+0

Почему вам нужен MathContext? Вы можете добавить два BigDecimals без него. – Thilo

+1

Вы пробовали использовать 'scan.nextBigDecimal();' для ввода пользователем? –

ответ

4

Это должно сделать это для вас

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

попробовал подобное, но мне не хватало библиотеки BigDecimal, отличного материала. Спасибо :) – 2009

+0

Рад, что помогло вам :). получать удовольствие от кодирования ... – Sanjeev

0
BigDecimal.valueOf(<string read in from command line>) 
Смежные вопросы