找回密码
 立即注册

QQ登录

只需一步,快速开始

七上八下

金牌服务用户

12

主题

23

帖子

125

积分

金牌服务用户

积分
125
七上八下
金牌服务用户   /  发表于:2024-12-11 10:32  /   查看:136  /  回复:4
1金币
本帖最后由 七上八下 于 2024-12-11 10:35 编辑

公式字段类型为小数

使用除法计算两个字段的值使用公式=[一次铝重量]/[总铝水重量]*100
计算内容举例
1/2=0
也就是说结果默认舍弃了小数位,把用于运算的字段类型改成小数也不行,该如何解决

最佳答案

查看完整内容

[*]对于select 1/2: [*]在 SQL 中,当两个整数相除时(这里是1和2),如果没有进行类型转换,结果会按照整数除法规则来计算。 [*]整数除法会截断小数部分,只返回整数结果。1除以2的结果是0.5,但由于整数除法的规则,它会截断小数部分,返回0。 [*]对于select cast(1 as decimal(18,1))/2: [*]首先,cast(1 as decimal(18,1))这部分将整数1转换为小数类型。decimal(18,1)表示总共可以有 18 位数字,其中小数点后 ...

4 个回复

倒序浏览
最佳答案
最佳答案
amtath悬赏达人认证 活字格认证
论坛元老   /  发表于:2024-12-11 10:32:50
来自 4#


  • 对于select 1/2:
    • 在 SQL 中,当两个整数相除时(这里是1和2),如果没有进行类型转换,结果会按照整数除法规则来计算。
    • 整数除法会截断小数部分,只返回整数结果。1除以2的结果是0.5,但由于整数除法的规则,它会截断小数部分,返回0。
  • 对于select cast(1 as decimal(18,1))/2:
    • 首先,cast(1 as decimal(18,1))这部分将整数1转换为小数类型。decimal(18,1)表示总共可以有 18 位数字,其中小数点后有 1 位数字。
    • 当把1转换为decimal(18,1)类型后,它的值是1.0(以符合指定的小数格式)。
    • 然后1.0/2按照常规的数学除法规则进行计算,结果是0.5。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
七上八下
金牌服务用户   /  发表于:2024-12-11 10:35:04
2#
已解决
回复 使用道具 举报
七上八下
金牌服务用户   /  发表于:2024-12-11 10:35:25
3#
系统微反应
回复 使用道具 举报
Joe.xu讲师达人认证 悬赏达人认证 活字格认证
超级版主   /  发表于:2024-12-11 12:22:18
5#
楼主可以分享一下解决方案哈,这样后面有这个问题的格友也可以参考此贴了~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部