我试图在视图中计算结果小于1的公式时遇到问题。我有下式:Arenda*TotalArea/10000 as TotalArenda
如果我有Arenda = 10和TotalArea = 10我得到TotalArenda = 0,00时,一般应在0.01 感谢计算公式中的Sql问题
回答
让Arenda = 10.0和TotalArea = 10.0,而不是10和10。这将迫使SQL不要使用整数数学,你会得到你需要的精度。
事实上,我可以得到0.0的唯一方法是如果Arenda是10(整数),而TotalArea或10000中的至少一个包含小数和尾部0,并且只有我覆盖操作顺序通过使用括号如
select 10.0* (10/10000) as blah
分组如果一切都是整数,你得到0。如果所有包含小数,你会得到0.01。如果我删除括号,如果它们中的任何一个都是非整数类型,我会得到0.01。
如果精度是非常重要的,我会建议你转换为小数,而不是浮动:
select CONVERT(decimal(10,2), Arenda) * CONVERT(decimal(10,2), TotalArea)/10000.0
我试过了,它不工作:( – user1820705
你是对的,TotalArea是整数,现在我意识到了。感谢很多! – user1820705
您使用colunns,所以改变类型可能是不可行的。 SQL Server对整数进行整数除法(其他数据库的行为不同)。尝试下列操作之一:
cast(Arenda as float)*cast(TotalArea as float)/10000
或:
Arenda*TotalArea/10000.0
我尝试了第一个变体,它的工作。非常感谢! – user1820705
- 1. SharePoint计算列公式公式问题
- 2. PHPEXCEL公式计算问题
- 3. SQL计算机列公式
- 4. 按公式计算的SQL重量行
- 5. 某些公式中的Javascript计算问题
- 6. 计算列在SQL中的问题
- 7. SQL Server:高级计算列公式
- 8. Sql Server计算列公式语法
- 9. 计算公式中closedxml
- 10. Sharepoint计算公式
- 11. Excel公式计算
- 12. javascript公式计算
- 13. 计算公式值
- 14. Javascript公式计算
- 15. PHP计算公式
- 16. Excel公式计算
- 17. Vue公司2.0 - 计算问题
- 18. 计算抛射体运动公式的问题
- 19. 问题与形式计算
- 20. MySQL的统计问题公式
- 21. 计算公式的值
- 22. 棘手的计算公式
- 23. excel公式sumif公式不计算
- 24. Concat(SQL)的NetSuite Field公式问题
- 25. 打开xml sdk excel公式重新计算缓存问题
- 26. Excel c#问题 - 公式未被重新计算
- 27. 在mysql中计算累积式公式
- 28. JSP中的计算问题
- 29. if语句中的日计算公式
- 30. Android中的二次公式计算?
是什么类型Arenda和TotalArea的? – oryol
@oryol他们是数字(12,2)类型。 – user1820705