2016-02-19 3 views
0

Я выбираю столбец чисел в базе данных. Например:Умножение большого числа, выбранного из базы данных

   BigDecimal total_price_bg; 
       BigDecimal unit_price_bg; 

       if (results.next()) { 
        unit_price_bg = results.getBigDecimal("UNIT_PRICE"); 
        total_price_bg = unit_price_bg.multiply(unit_price_bg); // I have trouble here.. 
        System.out.println(total_price_bg); 
       }  

Первая строка может содержать 10,25, вторая строка 7,03 и третья строка может содержать 371,09. Как многократно умножать большие десятичные числа с одинаковой переменной? Действительно ли это возможно? Заранее спасибо.

+0

Почему не инициализируется '' total_price_bg' в BigDecimal.ONE' затем 'total_price_bg = total_price_bg.multiply (results.getBigDecimal («UNIT_PRICE»))) ' –

ответ

2

Вы имеете в виду это?

  BigDecimal total_price_bg = BigDecimal.ONE; 

      while (results.next()) { 
       BigDecimal unit_price_bg = results.getBigDecimal("UNIT_PRICE"); 
       total_price_bg = total_price_bg.multiply(unit_price_bg.pow(2)); 
      }  
      System.out.println(total_price_bg); 

Это непрерывно объединяет значение UNIT_PRICE в переменную total_price_bg. Я расправил значение unit_price_bg, потому что я заметил, вы умножив его раз сам по себе, но, возможно, вы имели в виду:

  BigDecimal total_price_bg = BigDecimal.ONE; 

      while (results.next()) { 
       BigDecimal unit_price_bg = results.getBigDecimal("UNIT_PRICE"); 
       total_price_bg = total_price_bg.multiply(unit_price_bg); 
      }  
      System.out.println(total_price_bg); 
+0

да сумма' 10.25 * 7.03 * 371.09' должна быть '26739.817675'. Спасибо, я попробую ваше решение. – sg552

+0

@ sg552 Определенно мудрый выбор для использования BigDecimal. Теперь вы можете иметь дело с меньшими числами, но это может быть не всегда так, и BigDecimal является единственным типом, который может гарантировать, что переполнения не будет. – Neil

 Смежные вопросы

  • Нет связанных вопросов^_^