<< | к задаче | главная | печатать | обсудить(0 сообщений) >>
Задача: Преобразование сумм из цифрового представления в строковое
Фрагмент: конвертация [java] управление:
  1. import java.math.*;
  2.  
  3. public class jAmount {
  4.  
  5. private BigInteger summ;
  6. private String [] suff;
  7. private static final BigInteger zero = new BigInteger ("0");
  8. private static final BigInteger hundred = new BigInteger ("100");
  9. private static final BigInteger thousand = new BigInteger ("1000");
  10.  
  11. // Конструктор класса. Конструктор в качестве параметров получает:
  12. // String suff [] массив наименований (настроечная информация) и
  13. // String sum сумма для преобразования
  14. public jAmount (String [] suff, String s) {
  15. this.suff = suff;
  16. try {
  17. BigDecimal decimal = new BigDecimal (s);
  18. // Преобразуем в копейки (центы, пфенниги и т.д.),
  19. // одним словом - убираем дробную часть
  20. decimal = decimal.multiply (new BigDecimal (100.00));
  21. summ = decimal.toBigInteger ();
  22. // Приступить к преобразованию
  23. toString ();
  24. // Метод для вывода результата преобразования. Можно просто
  25. // выводить полученное строковое представление суммы на консоль:
  26. // System.out.println (fplAmount.res);
  27. jAmountResult jar = new jAmountResult (fplAmount.frame);
  28. jar.setVisible (true);
  29. }
  30. // Ой !!!!! Что-то не так: скорее всего, в строке
  31. // представляющей собой сумму цифрами, встретились символы
  32. // отличные от цифр и точки. Можно просто выводить сообщение
  33. // об ошибках на консоль:
  34. // System.out.println (e);
  35. jAmountError jae = new jAmountError (fplAmount.frame);
  36. jae.setVisible (true);
  37. }
  38. }
  39.  
  40. // Получить правую (дробную) часть суммы
  41. public String getRightPart () {
  42. return alignSumm (summ.remainder (hundred).abs ().toString ());
  43. }
  44.  
  45. // Если сумма меньше 10, то выровнять ее дописыванием "0"
  46. String alignSumm (String s) {
  47. switch (s.length ()) {
  48. case 0: s = "00"; break;
  49. case 1: s = "0" + s; break;
  50. }
  51. return s;
  52. }

 
каталог | задачи | паттерны | исходники | стат | форумы | карта сайта | контакты | ссылки 
© 2000-2017 CodeLAB Group
  Все права защищены
Страница сгенерирована за 0.003005 секунд
Количество запросов к БД: 3, gzip: 3.7kb/16.6kb(78%)