sqlserver中计算结果保留小数
2015-01-22 20:30
549 查看
经常要保留小数,在程序中计算太麻烦了,还要转换操作。直接在数据库中操作来得方便。
把数据类型定义成decimal/numeric类型,小数位看需要随意设,除数与被除数必须要有一个为decimal/numeric中的类型,
如下例:
SELECT 24.0000/38.0000 --0
SELECT CAST(24/38 AS NUMERIC(18,4)) --0
SELECT CAST(24/38.0000 AS NUMERIC(18,4)) --0.6316 此结果已经四舍五入
SELECT 24.0000/38.0000 --0.6316
decimal/numeric与int类型运算时会得出decimal/numeric类型的结果,因为decimal/numeric的优先级比int高。
参照MSDN上的类型优先级表:
SQL Server 2005 对数据类型使用以下优先级顺序:
用户定义数据类型(最高)
sql_variant
xml
datetime
smalldatetime
float
real
decimal
money
smallmoney
bigint
int
smallint
tinyint
bit
ntext
text
image
timestamp
uniqueidentifier
nvarchar(包括 nvarchar(max))
nchar
varchar (包括 varchar(max))
char
varbinary(包括 varbinary(max))
binary(最低)
把数据类型定义成decimal/numeric类型,小数位看需要随意设,除数与被除数必须要有一个为decimal/numeric中的类型,
如下例:
SELECT 24.0000/38.0000 --0
SELECT CAST(24/38 AS NUMERIC(18,4)) --0
SELECT CAST(24/38.0000 AS NUMERIC(18,4)) --0.6316 此结果已经四舍五入
SELECT 24.0000/38.0000 --0.6316
decimal/numeric与int类型运算时会得出decimal/numeric类型的结果,因为decimal/numeric的优先级比int高。
参照MSDN上的类型优先级表:
SQL Server 2005 对数据类型使用以下优先级顺序:
用户定义数据类型(最高)
sql_variant
xml
datetime
smalldatetime
float
real
decimal
money
smallmoney
bigint
int
smallint
tinyint
bit
ntext
text
image
timestamp
uniqueidentifier
nvarchar(包括 nvarchar(max))
nchar
varchar (包括 varchar(max))
char
varbinary(包括 varbinary(max))
binary(最低)
相关文章推荐
- sqlserver中计算结果保留小数
- sqlserver中计算结果保留小数
- SQLSERVER 使用 AVG 函数时结果保留小数
- Delphi的实数计算结果中只保留2位小数
- Delphi的实数计算结果中只保留2位小数
- 如何让excel计算C=A/B结果保留两位小数
- sql计算除法保留两位小数
- mysql查询结果单位换算后小数位数的保留方式
- 如果x的x次幂结果为10(参见【图1.png】),你能计算出x的近似值吗? 显然,这个值是介于2和3之间的一个数字。 请把x的值计算到小数后6位(四舍五入),并填写这个小数值。 注意:只填写一
- js-计算保留小数点一两位并避免出现无限小数的bug
- C++:利用如下公式,编写函数计算∏的值,直到最后一项的绝对值小于e,主程序接收从键盘输入的e,输出∏的值(保留5位小数)。 ∏/4 = 1-1/3+1/5-1/7...
- javascript计算小数保留两位小数,多位小数的方法
- 编制一个完成两个数的四则运算程序。如:用户输入34+56则输出结果90.00。要求运算结果保留两位小数,用户输入时一次将两个数和操作符输入。
- js 运算结果保留最多2位小数
- ios小数向上、下取整,计算结果向上、下取整
- excel横向纵向求和结果(均保留两位小数)相差1分的问题
- SQLServer中进行sql除法运算结果为小数时显示0的解决方案
- JAVA为什么有时候除法计算结果本来应该是小数。但是得到整数int类型
- 计算商品税额和商品价格保留小数的时候的坑
- 常用的js保留结果两位小数,和将后台保留位数获取到的数据的最后的0去除