[gdal-dev] Numeric accuracy
Ari Jolma
ari.jolma at gmail.com
Sat Nov 11 07:00:17 PST 2017
Ari Jolma kirjoitti 11.11.2017 klo 12:05:
> I have been bitten twice, once with ArcGIS and now with Rasdaman WCS,
> with numeric accuracy.
>
> I'm making a data request on the corner of the bounding box, let's say
> it has minimum X of 75042.7273594. I'm setting my minX to that value
> and I'm enforcing it to that value with MAX (this was introduced
> because of a case with ArcGIS). The I print that to the request with
> "%.18g" (it was "%.15g" earlier but I changes it to that because of
> ArcGIS) and the result is 75042.7273593999998, which is not good for
> Rasdaman, since it is formally less than 75042.7273594. Although, in gdb
>
> (gdb) p 75042.7273594 > 75042.727359399999
> $7 = false
>
> Any ideas how to detect/prevent these kinds of situations? Keep the
> checks and go back to "%.15g"? Not ok with ArcGIS.
I made a small function to convert the floating point numbers to strings
(using "%.18g") and then comparing the strings. Seems to work but it
requires storing the coverage envelope in the DescribeCoverage XML as
strings and using those. That's since simply reading "75042.7273594"
into a double and then printing it out with "%.18g" changes it into
"75042.727359399999".
Ari
>
> Ari
>
>
More information about the gdal-dev
mailing list