On 7/18/06, Tim Lucia <[EMAIL PROTECTED]> wrote:


> -----Original Message-----
> From: Obed Soto Déctor [mailto:[EMAIL PROTECTED]
> Sent: Monday, July 17, 2006 7:28 PM
> To: mysql@lists.mysql.com
> Subject: problem with double data
>
> Hi, i'm sorry for my english, i'm from México and i'm gonna do my best,
>
> i've made a store procedure but i have some problems becouse when a
> make a simple operation with double datas the result is not what i
> wait.
>
> look
>
> cantidad_origen = 30.5
> cantidad_ = 30.4
> suma = 0
>
> UPDATE detalle_tanque set cantidad = ( cantidad_origen - cantidad_ -
> suma ) where id_detalle_transaccion = id_detalle_transaccion_origen
> and ctl_no=ctl_no_origen;
>
> cantidad = 0.100000000000001
>

Looks like your standard floating-point rounding error.  See
http://dev.mysql.com/doc/refman/5.0/en/numeric-type-overview.html which
says:  "A double-precision floating-point number is accurate to
approximately 15 decimal places."  If I counted right, the "errant 1" at the
end is in place 15, so that is accurate to approximately 15 places.

Tim



OOOHHH !!! thank's
you're right, thanks, i did this, i dont know if it's ok.

 DECLARE nueva_cantidad DOUBLE(10,4);

and then i use it


                     SET nueva_cantidad = ( cantidad_origen -
cantidad_ - suma );
                     UPDATE detalle_tanque set cantidad =
nueva_cantidad where id_detalle_transaccion =
id_detalle_transaccion_origen and ctl_no=ctl_no_origen;
                     SET nueva_cantidad = cantidad_ - suma;
                     INSERT INTO detalle_tanque VALUES ( id_ ,
ctl_no_origen ,id_tanque_destino_, nueva_cantidad );


and it works ok now.. !!!

it's ok what i've done ? !!!!

thank's in advanced

--
http://www.obed.org.mx ---> blog

--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to