sql decimal 控制查询输出小数位数

decimal(18,0)
18是定点精度,0是小数位数。
decimal(a,b)
a指定指定小数点左边和右边可以存储的十进制数字的最大个数,最大精度38。
b指定小数点右边可以存储的十进制数字的最大个数。小数位数必须是从 0 到 a之间的值。默认小数位数是 0。

实例

 代码如下 复制代码

select cast(12.347343 asdecimal(18,2))

 输出

12.35

 

decimal[ (p[ ,s] )] 和 numeric[ (p[ ,s] )]

固定精度和小数位数。使用最大精度时,有效值从 - 10^38 +1 到 10^38 - 1。decimal 的 ISO 同义词为 dec 和 dec(p, s)。numeric 在功能上等价于 decimal。

p(精度)

最多可以存储的十进制数字的总位数,包括小数点左边和右边的位数。该精度必须是从 1 到最大精度 38 之间的值。默认精度为 18。

s (小数位数)

小数点右边可以存储的十进制数字的最大位数。小数位数必须是从 0 到 p 之间的值。仅在指定精度后才可以指定小数位数。默认的小数位数为 0;因此,0 <= s <= p。最大存储大小基于精度而变化。

 


精度


存储字节数


1 - 9


5


10-19


9


20-28


13


29-38


17

 

时间: 2025-01-31 06:00:47

sql decimal 控制查询输出小数位数的相关文章

.net decimal保留指定的小数位数(不四舍五入)_实用技巧

前言 项目中遇到分摊金额的情况,最后一条的金额=总金额-已经分摊金额的和. 这样可能导致最后一条分摊的时候是负数,所以自己写了一个保留指定位数小数的方法. 扩展方法的使用,使得调用起来很优雅. 示例代码 public static class DecimalExtension { /// <summary> /// decimal保留指定位数小数 /// </summary> /// <param name="num">原始数量</param&

sql语句-通过程序读取oracle数据时,小数位数总是多一位

问题描述 通过程序读取oracle数据时,小数位数总是多一位 我在oracle中写了一个求数据集的sql语句,得到的数据都是保留三位小数,但是通过程序得到的DataTable,所有数据多了一位.这是为什么呀?如:本来在数据库里取出来是0.067,但是从程序里出来后就变成了0.0670,后面会多一位小数位,怎么去掉呢? 解决方案 看看数据库是不定长的数据类型,小数后保留的是4位. 解决方案二: 保留三位小数只是运算的精度.存储的精度关键看字段类型,字段类型是4位就算你保留零位小数结果还是4位. 你

select-jsp和mysql想实现数据库查询输出,但sql语言好像不对

问题描述 jsp和mysql想实现数据库查询输出,但sql语言好像不对 sql="select * from shiwu where name='"name"'": name是字符型,数据库中是要查汉字,类型是utf-8,jsp中取输入的name?属性,我out.print(name)之后, 可以输出汉字,但一到rs.excuteQuery():就出错,不能往下执行,rs.next()也老出错,不知道什么原因, 是因为汉字编码设置不对吗? 解决方案 哦,sql最后的

chart控件,X轴刻度值,小数位数如何控制?

问题描述 如图,我用chart控件生成的散点图,X轴的坐标,无论怎么设置都显示到了小数后很多位.我想控制在小数后一位,请大家指教:) 解决方案 解决方案二:X轴的坐标的数据从数据库读取时就做格式化控制,解决方案三:我的X,Y轴的数据都是double,都没有做格式化控制处理.但是Y轴的坐标小数位数只有一位?X轴如何控制可以和Y轴一样?解决方案四:处理一下Math.Round(yourDouble,1).ToString()解决方案五:为什么Y轴不做处理也可以实现呢?解决方案六:例如,第一点的坐标是

JS 控制小数位数的实现代码_javascript技巧

昨天在用JS对前台浮点数进行合算时发现: 0.05+1.08=1.1300000000000001 上网查一查的确存在这种Bug,除了位数上控制之外也没什么也好的方法(希望高手能提出 其它思路). 于是自己编写一个控制小数位数的JS方法,解决开发燃眉之急 复制代码 代码如下: //小数位数控制,可以四舍五入 function Fractional(n) { //小数保留位数 var bit = 2; //加上小数点后要扩充1位 bit++; //数字转为字符串 n = n.toString();

C# double和decimal数据类型以截断的方式保留指定的小数位数_C#教程

项目中要用到以截断的方式取小数点后两位,故写了以下方法: 复制代码 代码如下: /// <summary> /// 将小数值按指定的小数位数截断 /// </summary> /// <param name="d">要截断的小数</param> /// <param name="s">小数位数,s大于等于0,小于等于28</param> /// <returns></retur

列出SQL SERVER 所有表,字段名,主键,类型,长度,小数位数等信息

server SELECT        (case when a.colorder=1 then d.name else '' end)表名,        a.colorder 字段序号,        a.name 字段名,        (case when COLUMNPROPERTY( a.id,a.name,'IsIdentity')=1 then '√'else '' end) 标识,        (case when (SELECT count(*)        FROM

C#保留小数位数的方法

1.System.Globalization.NumberFormatInfo provider = new System.Globalization.NumberFormatInfo(); provider.NumberDecimalDigits =intDecLength; //要设定的小数位数 double strCashAmt=Convert.ToDouble(this.txtCashAmt.Text); //先把控件內的值转成double this.txtCashAmt.Text =

实例简析SQL嵌套子查询

  实例简析SQL嵌套子查询: 一些初级程序员常常对SQL语法中的子查询,由其对嵌套子查询(子查询中包含一个子查询)的使用比较生疏,本文就此做一个基本讲解,相信新手会有一定收获. 使用子查询的原则 1.一个子查询必须放在圆括号中. 2.将子查询放在比较条件的右边以增加可读性. 子查询不包含 ORDER BY 子句.对一个 SELECT 语句只能用一个 ORDER BY 子句, 并且如果指定了它就必须放在主 SELECT 语句的最后. ORDER BY 子句可以使用,并且在进行 Top-N 分析时