【问题标题】:Excel MSsql different valuesExcel MSsql 不同的值
【发布时间】:2018-07-04 08:17:46
【问题描述】:

我创建了一个名为:

sub

,带字段:

addn numeric (24,6) NULL

我已使用此 txt 文件中的值插入。 https://drive.google.com/file/d/1z2ixHDOvHiM5bqDSI3fCbkuXa0Syfjrn/view

问题: 为什么如果我查询这个:

select SUM(addn) from sub

结果:

131546008007.610000

如果我将结果粘贴到 Excel 中:

 select * from sub

总和是:

131546008007.57

注意: 查询中有 4 (-0.01)。我不知道这是否是触发器以及如何解决这个问题

【问题讨论】:

    标签: sql sql-server sql-server-2005 excel-formula


    【解决方案1】:

    这是关于精度、比例和长度的主题。例如,数值数据类型的存储/管理方式与浮点数据类型不同。

    试试这个查询,你会得到和 Excel 一样的结果:

    select sum(cast(addn as float)) from sub
    

    131546008007.57

    这里有一些链接,他们解释浮点数据类型是一个近似数字,小数比浮点数据类型更准确。因此,您可以看到 Excel 使用的是近似数字。

    Precision, Scale, and Length

    Here 他们解释说,在金融应用程序中你不应该使用浮点数据类型,所以在你的数据库中使用numeric 是很好的,因此你可以在这个例子中依赖你的 SQL 数据库。

    here 他们声明:

    Excel 是根据 IEEE 二进制浮点算术标准 (IEEE 754) 设计的。该标准定义了浮点数的存储和计算方式。 IEEE 754 标准被广泛使用,因为它允许将浮点数存储在合理数量的空间中,并且可以相对快速地进行计算。

    .

    Excel 存储 15 位有效数字精度。

    【讨论】:

    • 谢谢伙计。有没有办法将excel数据类型从浮点数转换为数字?再次感谢
    • 不客气@AnthonyLopez,我猜你不能以这种方式使用 Excel。检查this 有更多解释。如果您想了解更多关于此的科学内容,甚至可以查看this。我想在这种情况下您应该更愿意使用 DB,并记住:最大的精度,最慢的数学运算响应。祝你好运!
    猜你喜欢
    • 2016-10-18
    • 2022-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-24
    • 2023-04-09
    相关资源
    最近更新 更多