1

当我通过 DBslayer http://code.nytimes.com/projects/dbslayer运行查询时,浮点结果被截断为总共六位数(需要时加上小数点和负号)。

{ ... "lat":52.2228,"lng":-2.19906, ... }

当我在 MySQL 中运行相同的查询时,结果符合预期。

| 52.22280884 | -2.19906425 |

首先,我将 DBSlayer 确定为造成这种影响的原因是否正确?(或它使用的 JSON 库等)

其次,这个浮点精度可以在 DBSlayer 中配置吗?

谢谢,

克里斯。

PS Ubuntu 9.10,x86_64

小路: 。URL:http ://dbslayer.googlecode.com/svn/trunk 存储库根目录:http ://dbslayer.googlecode.com/svn 存储库 UUID:5df2be84-4748-0410-afd4-f777a056bd0c 修订:65 节点种类:目录时间表: normal 最后更改作者:dgottfrid 最后更改版本:65 最后更改日期:2008-03-28 22:52:46 +0000(2008 年 3 月 28 日星期五)

4

1 回答 1

1

我最终解决了这个问题。

有几个地方 DBSlayer 使用 printf 的 %g 来格式化双精度。这仅给出 6 个有效数字。

用 %.15g 替换所有这些出现并重新编译,已经解决了这个问题。

于 2010-06-09T12:59:21.327 回答