Problem with numeric calculation !!!

In a method is this statement:

var c_TotVal = Math.round( c_TotVal * 100 ) / 100 ;

// c_TotVal = Math.round( 740.415 * 100 ) / 100 ;
// c_TotVal = 740.42
totval = c_TotVal ; // totval is the database field = 740.41

Why is 740.41 stored in the database field ?

Database used: SQL Anywhere 10.0.1
Java: 1.6.0_03-b05
Servoy 4.1.3

Thanks Armin Kessler

All numbers in javascript are IEEE 754 floating point. 740.415 when stored in binary floating point does not have an exact match (just like 1/3 or sqrt(2) do not have exact match in decimal representation) - converted back it’s something like 740.414978027… and it goes on.
That is why it rounds to 740.41.

More info on this subject:
http://forum.servoy.com/viewtopic.php?f=3&t=4910&start=0&st=0&sk=t&sd=a
http://synchro.net/docs/js/ref/number.html
http://www.h-schmidt.net/FloatApplet/IEEE754.html

The preso in the link below is of the adBlocks guys.
They covered this issue in some sheets as well

http://forum.servoy.com/viewtopic.php?f=27&t=11170&start=0&st=0&sk=t&sd=a