Home  >  Article  >  Database  >  SQL保留指定位数的小数位

SQL保留指定位数的小数位

WBOY
WBOYOriginal
2016-06-07 17:48:362581browse

今天突然想到sql保留小数的问题,网上找了找找了一些实用的参考,对初学者很有帮助的,有需要的可以参考下。

在sql中,要??抵颠M行四?挝迦耄?umeric,decimal 等函?刀疾辉试S?置??底?量,

1.cast(@value as numeric(18,@decount))

2.cast(@value as decimal(18,@deccount))

都?箦e.

有效的sql四?挝迦敕椒?

declare @value float,@morecount int,@decount int

:要?行四?挝迦氲?抵?/p>

:任意大於要保留的小?滴?档闹?/p>

:要保留的小?滴??/p>

LTRIM(STR(CAST(@value as decimal(20, @morecount)),18,@decount))

除法保留小数

select   cast(cast(10 as float)/3 as decimal(10,2)) as print

还有Ceiling()和Floor()函数

一个是上取整,一个是下取整,很好用咯


小数类型-精度、小数位数和长度


精度是数中的数字个数。小数位数是数中小数点右边的数字个数。例如,数 123.45 的精度是 5,小数位数是2。

numeric 和 decimal 数据类型默认的最大精度是 38。在 SQL Server 早期版本中,默认的最大值是 28。

数字数据类型的长度是存储此数所占用的字节数。字符串或 Unicode 数据类型的长度是字符个数。binary、varbinary、和 image 数据类型的长度是字节数。例如,int 数据类型可以有 10 位数,用 4 个字节存储,不接受小数点。int 数据类型的精度是 10,长度是 4,小数位数是 0。

当两个 char、varchar、binary 或 varbinary 表达式串联时,结果表达式的长度是这两个源表达式长度之和,或是 8,000 字符,以二者中少者计。

当两个 nchar 或 nvarchar 表达式串联时,结果表达式的长度是两个源表达式长度之和,或是 4,000 字符,以二者中少者计。

除了 decimal 类型之外,数字数据类型的精度和小数位数是固定的。如果算术运算符有两个相同类型的表达式,结果就为该数据类型,并且有对此类型定义的精度和小数位数。如果运算符有两个不同数字数据类型的表达式,数据类型优先规则决定结果的数据类型。结果为该数据类型定义的精度和小数位数。

下表定义了当运算的结果是 decimal 类型时,结果的精度和小数位数是如何计算的。当以下情况时,结果是 decimal 类型:

两个表达式是 decimal 类型。


一个表达式是 decimal 类型,而另一个是比 decimal 优先顺序低的数据类型。
操作数表达式由表达式 e1(精度为 p1,小数位数为 s1)和表达式 e2(精度为 p2,小数位数为 s2)来表示。非 decimal 类型的表达式的精度和小数位数,是对此表达式数据类型定义的精度和小数位数。

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn