我有一个 csv 文件,其中除了标题和尾记录之外,每个详细记录中都存在数量和数量字段。拖车记录有一个总费用值,即数量的总和乘以明细记录中的金额字段。我需要检查拖车总费用值是否等于我计算的金额和数量字段的值。我对所有这些计算都使用双精度数据类型
在 csv 文件中,金额字段显示为“10.12”或“10”或“10.0”或“10.456”或“10.4555”或“-10.12”。金额也可以有正值或负值。
在 .csv 文件中
哈,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);
}
我已将变量 tmpChargeQuan、tmpChargeAmt、calChargeCount 声明为 double
当我在网上搜索时,我知道 double 可能会给财务计算带来问题,因此需要使用 BIGDECIMAL。但我想知道这种情况是否适用于我的计算。在我的情况下,金额值在小数点后最多可以有 5 位或 6 位数字“我可以使用双精度数据类型进行此计算吗?我正在使用它进行验证。如果我将上述代码与使用双精度的乘法一起使用会产生问题吗?