sql server控制小数显示位数的解决办法。
如题,我有一列是float类型,由于float类型存储精度问题,在数据库里存储成如0.94999999999999996小数位非常多的数字。我想让他显示成0.95该怎么弄...
如题,我有一列是float类型,由于float类型存储精度问题,在数据库里存储成如0.94999999999999996小数位非常多的数字。我想让他显示成0.95该怎么弄?
我试过select Convert(NUMERIC(18,2),0.95000000000000000)的写法,但输出成了.95,个位的0丢了。该怎么写能实现我要的效果呢?求解。 展开
我试过select Convert(NUMERIC(18,2),0.95000000000000000)的写法,但输出成了.95,个位的0丢了。该怎么写能实现我要的效果呢?求解。 展开
推荐于2017-09-18 · 知道合伙人数码行家
关注
展开全部
控制小数显示位数的办法如下:
decimal(18,0)
18是定点精度,0是小数位数。
decimal(a,b)
a指定指定小数点左边和右边可以存储的十进制数字的最大个数,最大精度38。
b指定小数点右边可以存储的十进制数字的最大个数。小数位数必须是从 0 到 a之间的值。默认小数位数是 0。
实例:
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。最大存储大小基于精度而变化。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不显示前导0不是数据本身的问题,需要在显示的程序中使用诸如FormatNumber的函数进行格式化处理
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询