L28965 2023-12-07 10:43 采纳率: 0%
浏览 6

数据库没法计算小数,ceiling和round都没用啊

用SQL Server Management Studio 19 做数据运算时,小数位总是被舍去怎么回事?

img

    selectceiling(sal*12/10000)fromjobwherejobname=部门经理
    15.查询job表中各个职位的年薪,如果是董事长按15薪统计,总经理按13薪统计
 00%
 到结果消息
     (无列名)
     3
                                                                                                                    CSDN@L2896

img

  select(sal*12/1000)                                  from10b              wherejobname=部门经理
  15.查询iob表中各个职位的年薪,如果是董事长按15薪统计,总经理按13薪统
 %
 结果配消息
    (无列名)
   36
                                                                                                     CSDM@L2896

我要求的应该是4,结果一直是3,
向上取整,四舍五入的没法用啊
破软件
怎么解决啊?

  • 写回答

2条回答 默认 最新

  • &春风有信 2023-12-07 11:08
    关注

    在SQL Server Management Studio 19中,数据运算时小数位被舍去可能是由于默认的数值精度和舍入规则导致的。你可以尝试以下几种方法来解决这个问题:

    使用CAST或CONVERT函数:

    使用CAST函数将数据类型转换为具有指定精度和舍入规则的数值类型。例如,如果你希望保留小数点后两位,可以使用以下语法:

    
    SELECT CAST(column_name AS DECIMAL(18, 2)) FROM table_name;
    

    使用CONVERT函数将数据类型转换为具有指定精度和舍入规则的数值类型。与CAST函数类似,你可以使用以下语法:

    SELECT CONVERT(DECIMAL(18, 2), column_name) FROM table_name

    调整数值列的精度和舍入规则:

    如果你的数据存储在表中,并且你希望保留更多的小数位,你可以调整相应数值列的精度和舍入规则。使用ALTER TABLE语句来修改列的定义,并指定所需的精度和小数位数。例如:
    sqlALTER TABLE table_name ALTER COLUMN column_name DECIMAL(18, 4);

    这将将列的数据类型更改为DECIMAL,并指定总位数为18,小数位数为4。

    更改SQL Server的默认数值精度和舍入规则:

    如果你希望更改SQL Server的默认数值精度和舍入规则,可以修改SQL Server的配置设置。打开SQL Server配置管理器(SQL Server Configuration Manager),找到SQL Server实例,并双击打开"数值精度和小数位数"属性。在这里,你可以更改默认的数值精度和小数位数。

    请注意,在进行数据运算时,保留更多的小数位可能会导致查询性能下降。因此,根据你的具体需求和数据量来选择适当的精度和舍入规则。

    评论

报告相同问题?

问题事件

  • 创建了问题 12月7日

悬赏问题

  • ¥15 音量自动减小啦!日历自动翻页
  • ¥15 微软硬件驱动认证账号申请
  • ¥15 有人知道怎么在R语言里下载Git上的miceco这个包吗
  • ¥15 GPT写作提示指令词
  • ¥20 如何在cst中建立这种螺旋扇叶结构
  • ¥20 根据动态演化博弈支付矩阵完成复制动态方程求解和演化相图分析等
  • ¥20 关于DAC输出1.000V对分辨率和精度的要求
  • ¥15 华为超融合部署环境下RedHat虚拟机分区扩容问题
  • ¥15 哪位能做百度地图导航触点播报?
  • ¥15 请问GPT语言模型怎么训练?