This is a read-only copy of the MariaDB Knowledgebase generated on 2024-11-01. For the latest, interactive version please visit https://mariadb.com/kb/.

Posible error de calculo en una resta sencilla? (Double-Double)

Hola estoy usando mariadb 5.5.43 y al intentar realizar una resta sencilla entre 2 campos recibo un valor que al parecer es incorrecto, aca un ejemplo de la consulta:

-SELECT ask, bid, (ask-bid)*100000 FROM Ticks LIMIT 10

Resultados (separados por ";"):

ask;bid;(ask-bid)*100000 1.14450; 1.14439; 11.00000000000545 1.14447; 1.14438; 9.000000000014552 1.14447; 1.14438; 9.000000000014552 1.14447; 1.14438; 9.000000000014552 1.14448; 1.14440; 7.999999999985796 1.14453; 1.14442; 11.00000000000545 1.14453; 1.14442; 11.00000000000545 1.14451; 1.14441; 9.999999999998899 1.14449; 1.14438; 11.00000000000545 1.14449; 1.14439; 9.999999999998899

El resultado correcto debería de ser algo como esto: 1.14449; 1.14439; 10

Otro ejemplo sin correr la coma a la izquierda: -SELECT ask, bid, ask-bid FROM Ticks LIMIT 10

Resultados (separados por ";"):

ask; bid; ask-bid 1.14450; 1.14439; 0.0001100000000000545 1.14447; 1.14438; 0.00009000000000014552 1.14447; 1.14438; 0.00009000000000014552 1.14447; 1.14438; 0.00009000000000014552 1.14448; 1.14440; 0.00007999999999985796 1.14453; 1.14442; 0.0001100000000000545 1.14453; 1.14442; 0.0001100000000000545 1.14451; 1.14441; 0.00009999999999998899 1.14449; 1.14438; 0.0001100000000000545 1.14449; 1.14439; 0.00009999999999998899

Aun sin usar el comando LIMIT el calculo parece incorrecto. Por que devuelve esa cantidad de decimales y el algunos casos el resultado es un decimal redondeado? Es un error de precisión o el tipo de datos que estoy usando para ese campo es incorrecto? Que tipo de datos me recomiendan para ese campo?

Aca el diseño de la tabla: CREATE TABLE `Ticks` ( `ask` DOUBLE NULL DEFAULT NULL, `bid` DOUBLE NULL DEFAULT NULL, ) COLLATE='utf8_general_ci' ENGINE=Aria;

Gracias por su ayuda.

Content reproduced on this site is the property of its respective owners, and this content is not reviewed in advance by MariaDB. The views, information and opinions expressed by this content do not necessarily represent those of MariaDB or any other party.