Well, let's look at the documentation.
-
Note: This function is almost ten times faster than
rational
, but is slightly less accurate.The
Double
type supports about 16 decimal places of accuracy. For 94.2% of numbers, this function andrational
give identical results, but for the remaining 5.8%, this function loses precision around the 15th decimal place. For 0.001% of numbers, this function will lose precision at the 13th or 14th decimal place. -
Note: This function is almost ten times faster than
rational
. On integral inputs, it gives perfectly accurate answers, and on floating point inputs, it is slightly less accurate than rational.
They are both acknowledged to be slightly inaccurate (in exchange for being relatively fast). number
's inaccuracy is not quantified, so the fact that its inaccuracy is not the same as double
's is not a bug.
If accuracy is paramount, use rational
.