Ik heb een probleem met een java programmaatje ivm berekeningen met floats. Het programma leest een csv-file in met daarin bedragen per categorie. De bedragen hebben maximaal 2 cijfers na de komma. Deze worden eerst naar float omgezet en daarna kunnen meerdere van deze bedragen bij elkaar opgeteld worden.
Het resultaat bevat soms 5 cijfers na de komma wat niet de bedoeling is en logischerwijs ook niet kan daar ik enkel bedragen met maximum 2 cijfers na de komma als invoer gebruik.
Hieronder wat code als voorbeeld hoe ik de floats gebruik. Echte programma leest invoer uit csv-file, hier heb ik wat hardcoded waardes gebruikt ter illustratie. Ik weet niet of net dit voorbeeld bedrag meer dan 2 decimalen genereerd maar zo zie je hoe het gemaakt is.
Iemand een idee wat ik mis doe en waarom java dit doet?
// txtbedrag
String txtbedrag="";
float bedrag=0;
float totaal=0;
txtbedrag="21.3";
bedrag=Float.valueOf(txtbedrag.trim()).floatValue();
totaal+=bedrag;
txtbedrag="1235.98";
bedrag=Float.valueOf(txtbedrag.trim()).floatValue();
totaal+=bedrag;