我试图在 SQL View 中将一个数字除以另一个。我将两列分别为 int
类型,问题是它给了我一个四舍五入的输出,而不是一个准确的输出。
这是我的选择:
SELECT numberOne, numberTwo, (numberOne*100/NULLIF(numberTwo, 0)) as PctOutput
这是有效的,但是当它以 37 倍下降 3 时,它给了我 8 而不是 8.108。
我将如何修改它以给我一个准确的答案?我需要从整数中转换数字吗?如果是这样 - 变成什么?
最佳答案
**--Cast the denominator as Float**
SELECT 3 * 100 / NULLIF(CAST(37 AS FLOAT),0) -- 8.10810810810811
**--Multiply by 1.0 in either numerator OR denominator**
SELECT 3 * 100 / NULLIF(37 * 1.0,0) -- 8.108108
SELECT 3.0 * 100 / NULLIF(37,0) -- 8.108108
**--Convert it to decimal**
SELECT CONVERT(DECIMAL(25,13), 3) * 100 /
NULLIF(CONVERT(DECIMAL(25,13), 37),0) -- 8.108108108
关于sql - 获得准确的百分比计算,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8957746/