J'ai un fichier csv où les champs montant et quantité sont présents dans chaque enregistrement de détail sauf l'enregistrement d'en-tête et de remorque. L'enregistrement de la remorque a une valeur de charge totale qui est la somme totale de la quantité multipliée par le montant de la quantité dans les enregistrements de détail. Je dois vérifier si la valeur de la charge totale de la remorque est égale à la valeur calculée des champs de quantité et de quantité. J'utilise le double type de données pour tous ces calculs. Lorsque je naviguais, je suis capable de comprendre à partir du lien web ci-dessous qu'il pourrait créer un problème en utilisant double type de données, tout en comparant avec des points décimaux. Il est ce qui suggère d'utiliser BigDecimalEn ce qui concerne BigDecimal
http://epramono.blogspot.com/2005/01/double-vs-bigdecimal.html
Aurais-je des problèmes si j'utilise deux types de données. Comment puis-je faire les calculs en utilisant BigDecimal. Aussi je ne suis pas sûr combien de chiffres je vais obtenir après les points décimaux dans le fichier csv. La quantité peut également avoir une valeur positive ou négative.
Dans le fichier CSV
H, ABC ..... "D", ...., "1", "12,23" "D", ....., "3" "- 13.334" "D", ......, "2", "12" T, csd, 123,12.345
-------------- ---------------- Alors que la validation, j'ai le code ci-dessous --------------------
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;
----------------------- Tout en lisant le fichier CSV j'ai le code ci-dessous
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
Merci beaucoup pour l'info – Arav