繁体   English   中英

webSQL浮点问题

[英]webSQL floating point issue

我正在使用Android上的PhoneGap API。 该API模拟webSQL进行存储。 我遇到了一个问题,我不确定是否将其归因于我对JavaScript的有限了解,还是归因于PhoneGap / WebSQL所缺少的东西。

长话短说,我通过WebSQL将UNIX纪元时间戳存储为FLOAT。

        tx.executeSql("INSERT INTO timeline VALUES(0, 10, 100, 1297618964.65, '2011-02-13')");
        tx.executeSql("INSERT INTO timeline VALUES(0, 8, 120, 1297618985.65, '2011-02-13')");

然后使用简单的select语句查询这些值,并使用以下代码进行读取:

        for (i = 0; i < results.rows.length; i++){
            console.log(results.rows.item(i).timestamp);
            timestamps.push(results.rows.item(i).timestamp);
            weights.push(results.rows.item(i).intensity);    
        }

问题是“时间戳”值似乎被截断了。 日志显示1.29762e + 09,我绘制的结果图反映了这种精度损失。

在这里使用parseFloat或toFixed会导致相同的精度损失,只是格式不同。 表定义使用FLOAT作为时间戳,因此在对它们进行任何处理之前,为什么要转换我的值感到有些困惑。

您可以对表定义中的字段使用DOUBLE吗?

为什么您的时间戳记是浮动的? 你需要那样的东西吗? 在javascript中,时间戳是自epoch作为整数以来的毫秒数。 我在我编写的应用程序中将此类时间戳存储在webSQL中没有问题。 小数点后还有毫秒? 那么也许您可以乘以1000并存储long int,然后从数据库中加载后再除以1000。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM