首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >SQLite:对整数值使用数学运算符的截断

SQLite:对整数值使用数学运算符的截断
EN

Stack Overflow用户
提问于 2017-09-06 14:53:42
回答 1查看 225关注 0票数 1

我有一种奇怪的行为,试图在与SQLite3一起工作的Select上做一些简单的计算。也许这是我的方法是错误的,因为它可能会更好地避免在sqlite上的计算。因此,为了避免这类问题,我在javascript代码上移动了数学操作(这是一个钛应用程序)。

顺便说一句,我知道sqlite在进行计算之前通常会将数据“转换”成数字类型,如下所示:http://www.sqlite.org/datatype3.html#operators

所有的数学运算符(+,-,*,/,%,<<,>>,&,和)在执行前都将两个操作数转换为数值存储类

在我的示例中,当SUM(值)返回一个整数时,下面的/100截断删除所有十进制数的值,而使用SUM(值)数值时,下面的/100按预期工作。

任何人都能解释我这里发生了什么,为什么?我无法理解我是犯了一个错误,还是它是sqlite中的一个bug (相当荒谬)。

EN

Stack Overflow用户

回答已采纳

发布于 2017-09-06 16:33:55

数字表示整型或实型。您的原始值已经是数字,因此转换为数字不会更改任何内容。

文档说:

如果所有非空输入都是整数,则sum()的结果是整数。如果sum()的任何输入既不是整数,也不是NULL,则sum()返回一个浮点值,它可能是真实和的近似值。

如果组中的所有值都是整数,那么sum()将返回一个整数,并且该除法是一个整数除法。

如果不能确保所有表值都是REALs,则必须强制以浮点形式进行除法,方法是将结果转换为REAL,或仅用100.0除法。

票数 2
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46078423

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档