c# - 在 SQLite 上将表达式结果从浮点转换为小数

标签 c# sql sqlite casting

我使用 SQLite.NET 对 SQLite 数据库运行的查询有以下表达式。

SUM(Detail.Qty * Products.Weight) AS MovedWeight

查询有效,但由于 Detail.Qty 是十进制,并且 Weight 也是十进制,因此它返回一个 float 。我正在尝试将其转换为 DECIMAL(10,2) 之类的内容。 我知道 SQLite 在数据类型方面很特殊,我确实尝试过使用 CAST,但没有成功。

CAST(SUM(Detail.Qty * Products.Weight) AS DECIMAL(10,2)) AS MovedWeight

它也有效,但没有注意到精度 (10,2),并且给出了与第一个示例相同的结果。

有人有想法吗?在 DataTable 中将结果转换为十进制也是可以接受的,但我不知道如何在没有丑陋的、消耗资源的循环的情况下做到这一点(预计查询在某些时候将返回 3000 或更多结果)。

最佳答案

ROUND() 函数可以解决这个问题。

ROUND(SUM(Detail.Qty * Products.Weight), 2) AS MovedWeight

关于c# - 在 SQLite 上将表达式结果从浮点转换为小数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4764752/

相关文章:

sql - 在不复制 T-SQL 中的数据的情况下更新表变量

java - 当我失去互联网连接时,我似乎无法访问我的 sqlite 数据。安卓

Android - contentResolver.notifyChange() 降低性能

r - 如何在 SQLite 数据库中存储 R 对象(列表)?

c# - 为什么使用 System.Runtime.Caching 或 System.Web.Caching 而不是静态变量?

c# - 如何在 C# 中实现 string(xml) 到 memorystream 文件?

c# - WPF MVVM 模式中的关注点分离

c# - 通过 TCP 共享 COM 端口

Mysql 查询获取具有两个日期输入的 from 和 to 列之间的记录

mysql - 父数据显示与子计数