代码之家  ›  专栏  ›  技术社区  ›  fadedbee

DBSlayer中浮点值的截断问题

  •  1
  • fadedbee  · 技术社区  · 14 年前

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

    当我在MySQL中运行相同的查询时,结果与预期一样。

    | 52.22280884 | -2.19906425 |

    首先,我认为DBSlayer是造成这种情况的原因是正确的吗 效果如何(或者它使用的JSON库等)

    第二,这个浮点精度在DBSlayer中是可配置的吗?

    克里斯。

    附赠Ubuntu 9.10,x86\u 64

    路径:。 http://dbslayer.googlecode.com/svn/trunk 存储库根目录: http://dbslayer.googlecode.com/svn 存储库UUID:5df2be84-4748-0410-afd4-f777a056bd0c 版次:65 节点类型:目录 日程安排:正常 上次更改作者:dgottfrid 上次更改版本:65 上次更改日期:2008-03-28 22:52:46+0000(2008年3月28日星期五)

    1 回复  |  直到 14 年前
        1
  •  1
  •   fadedbee    14 年前

    我最终解决了这个问题。

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

    用%.15g替换所有这些事件并重新编译,解决了问题。