> *Now, Python and CodeLite code work fine, and produce the value 1.3 for the > Elev field, Qt Creator code don't and the saved value is read as 1 (because > is codified as "1,3" and not as "1.3")!!!* > > Now, I took a look inside the source code of the GDAL library. > The method that writes real values to the dbf file is > DBFWriteDoubleAttribute (inside the ogr/ogr_frmts/shape/dbfopen.c file). > I think that there must be a sprintf that writes values using local > settings while it shouldn't, but I don't know the library and I'm not able > to check. I think it's a bug to correct.
There are likely many places in GDAL where we unfortunately use locale sensitive rountines and we shouldn't. You can workaround this at your side by including cpl_conv.h and adding a "CPLLocaleC oLocaleCForcer;" before calling GDAL code. This will switch to the C locale temporarily and restore the original locale afterwards (at the end of the block where the object is declared). > > -- > View this message in context: > http://osgeo-org.1560.n6.nabble.com/OFTReal-values-truncated-to-integer-tp > 4933952p4936894.html Sent from the GDAL - Dev mailing list archive at > Nabble.com. > _______________________________________________ > gdal-dev mailing list > [email protected] > http://lists.osgeo.org/mailman/listinfo/gdal-dev _______________________________________________ gdal-dev mailing list [email protected] http://lists.osgeo.org/mailman/listinfo/gdal-dev
