无法将除法结果转换为浮点或十进制类型

Posted

技术标签:

【中文标题】无法将除法结果转换为浮点或十进制类型【英文标题】:Can't convert division result into float or decimal type 【发布时间】:2019-04-23 01:09:52 【问题描述】:

我的 t-sql 代码中有一个计算,我希望它会显示十进制结果(逗号后至少有 2 位数字) 我使用的字段是整数类型,但计算结果是小数

我尝试使用 CAST 作为浮点数,但不起作用

  (COUNT(ct.[ClientFK]) / ehrprg.AnnualGoalClientsServed) AS [AnnualGoal]
 I tried:
  CAST((COUNT(ct.[ClientFK]) / ehrprg.AnnualGoalClientsServed) as float) 
                                                           AS[AnnualGoal]

我希望在逗号后至少看到两位数 - 2/50 是 0.04 而现在我得到 0

任何建议/帮助将不胜感激

【问题讨论】:

【参考方案1】:

尝试在取商之前将分母显式转换为浮点数:

COUNT(ct.[ClientFK]) / CAST(ehrprg.AnnualGoalClientsServed AS float) AS [AnnualGoal]

在上述方法中,由于商中的两项之一是浮点数,因此另一个项(在本例中为计数)也应提升为浮点数。

【讨论】:

以上是关于无法将除法结果转换为浮点或十进制类型的主要内容,如果未能解决你的问题,请参考以下文章

软考-前篇

易语言如何转换16进制?

c语言辗转相除法 将十进制转换成任意进制的数 运行结果出错,与正确不符,求指导哪里出错

为什么浮点型运算结果会有误差?

C#类型转换

C#类型转换