У меня есть CSV-файл, в котором поля количества и количества присутствуют в каждой подробной записи, кроме заголовка и записи трейлера. У записи трейлера есть значения полной оплаты, которые являются общей суммой количества, умноженного на поле количества в подробных записях Мне нужно проверить, равно ли значение полной оплаты прицепа моим расчетным значениям полей количества и количества. Я использую двойной тип данных для всех этих расчетов. При просмотре я могу понять из приведенной ниже веб-ссылки, что это может создать проблему с использованием двойного типа данных при сравнении с десятичными точками. Он предлагает использовать BigDecimal
http://epramono.blogspot.com/2005/01/double-vs-bigdecimal.html
Буду ли я получать проблемы, если я использую двойной тип данных. Как я могу сделать расчеты, используя BigDecimal. Также я не уверен, сколько цифр я получу после десятичных точек в CSV-файле. Также сумма может иметь положительное или отрицательное значение.
В CSV-файле
H, ABC .....
"D", ...., "1", "12,23"
"D", ....., "3", "- 13,334"
"D", ......, "2", "12"
Т, CSD, 123,12.345
------------------------------ Во время проверки у меня есть следующий код --------- -----------
double detChargeCount =0;
//From csv file i am reading trailer records charge value
String totChargeValue = items[3].replaceAll("\"","").trim();
if (null != totChargeValue && !totChargeValue.equals("")) {
detChargeCount = new Double(totChargeValue).doubleValue();
if(detChargeCount==calChargeCount)
validflag=true;
----------------------- При чтении файла CSV у меня следующий код
if (null != chargeQuan && !chargeQuan.equals("")) {
tmpChargeQuan=Long(chargeQuan).longValue();
}
if (null != chargeAmount && !chargeAmount.equals("")) {
tmpChargeAmt=new Double(chargeAmount).doubleValue();
calChargeCount=calChargeCount+(tmpChargeQuan*tmpChargeAmt);
}
I had declared the variables tmpChargeQuan, tmpChargeAmt, calChargeCount as double