clear Set decimals to 4 select EMISSIONUNITREPORT2 sum EMISBYAVG to m.lnTotalAVG *!* result = 58271.270050 select EMISSIONUNITREPORT3 sum EMISBYAVG to m.lnTotalAVG1 *!* result = 58271.270050 ?m.lnTotalAVG - m.lnTotalavg1 *!* result = 0.000000 ?Type("m.lnTotalAVG") *!* result = "N" ?Type("m.lnTotalAVG1") *!* result = "N" ?str(m.lnTotalAVG,30,18) *!* result = "58271.270049999400000000" ?str(m.lnTotalAVG,30,18) *!* result = 58271.270049999900000000 *!* this is how my test program was checking each total ? round(m.lnTotalAVG,4) = round(m.lnTotalAVG1,4) *!* result = .f. ? round(m.lnTotalAVG,4) *!* result = 58271.2700 ? round(m.lnTotalAVG1,4) *!* result = 58271.2701 && Wrong!! *!* now manually set to same values as returned by sum m.lnTotalAVG = 58271.270049999400000000 ?m.lnTotalAVG *!* result = 58271.270049999400000000 m.lnTotalAVG1 = 58271.270049999900000000 ?m.lnTotalAVG1 *!* result = 58271.270049999900000000 ?Type("m.lnTotalAVG") *!* result = "N" ?Type("m.lnTotalAVG1") *!* result = "N" ? round(m.lnTotalAVG,4) = round(m.lnTotalAVG1,4) *!* result = .T. && ROUND WORKS AS EXPECTED HERE ? round(m.lnTotalAVG,4) *!* result = 58271.2700 ? round(m.lnTotalAVG1,4) *!* result = 58271.2700>Perhaps you can check whether any of the intermediate numbers are of type currency?