我有一个 csv 文件,其中除了标题和尾记录之外,每个详细记录中都存在数量和数量字段。拖车记录有一个总费用值,即数量的总和乘以明细记录中的金额字段。我需要检查拖车总费用值是否等于我计算的金额和数量字段的值。我对所有这些计算都使用双精度数据类型。当我浏览时,我可以从下面的 Web 链接中了解到,在与小数点比较时,使用双数据类型可能会产生问题。建议使用 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" T,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