sql server - SQL: Sum a negative and positive real gives wrong value -


why following query result in value 3.21865081787109e-06 when value should zero?

create database test go use test create table nums (number real) go insert nums values (1.67460317460317),(-1.6746) go 

then run:

select sum(number) nums 

this returns value 3.21865081787109e-06?

if cast values decimal, or if shorten first number 1.6746 returns correct value of zero?

also: summing numbers manually gives correct value, looks if sum() trims zeroes?

select (1.67460317460317 + -1.6746)

returns:

0.00000317460317

thank you!

why should 0?

   1.67460317460317 + -1.6746 ------------------- =  0.00000317460317 =  3.17e-06 

and difference between 3.21 , "real" math 3.17 floating point inaccuracy.


Comments

Popular posts from this blog

Java 3D LWJGL collision -

spring - SubProtocolWebSocketHandler - No handlers -

methods - python can't use function in submodule -