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.