sql类型 money 小数不显示开头的0

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql类型 money 小数不显示开头的0相关的知识,希望对你有一定的参考价值。

为什么sql类型 money 小数不显示开头的0
例如0.01 数据库中只储存了 .01
显示在前台也是 .01
如何才能现实出完整的 0.01
或者说如何才能存储 0.01 到数据库而不是存储 .01

数据库里存放的可能都是.xx格式的,可以用程序控制输出格式,介绍一个函数:
FormatNumber(
expression [,NumDigitsAfterDecimal] [,IncludeLeadingDigit [,UseParensForNegativeNumbers] [,GroupDigits]]
)

NumDigitsAfterDecimal:小数点后面的数字保留几位。
IncludeLeadingDigit :如果小于1是否保留小数点前面的0。-1就是保留;0部保留;
UseParensForNegativeNumbers: 用括号还是符号(-)来表示负数。
GroupDigits:是否用逗号来分隔千位数字。如:123,123.00
参考技术A 在前台做数据显示的定制就可以了,不用管数据库怎么保存的。

sql表小数点前面的0不显示问题

往表里插入数据
INSERT emp_pay VALUES (1, 500, .10)
表里第3个字段decimal类型,结果查询出来的时候显示.10,而不是0.10,怎么显示成0.10呢

declare @c as decimal(6,2)
set @c=0.10
select @c 数字,cast(@c as varchar(20)) 字符

其实从上图中可以看出,SQL输出的结果是没有错的,很可能是程序将其小数点前面的0省略掉了。

参考技术A 查看表里的第三个字段的decimal数据类型,比如decimal(18,0)为取整,decimal(18,2)为插入数据保留2位小数点。decimal(18,2)你插入10的时候会显示位10.00 参考技术B 插入.10,在数据表里看也是0.10的,如果是前台显示问题,那么需要自己格式化下显示格式。 参考技术C 修改下返回的类型,如果是string类型的就可以是这样,可以改为bigDecimal就可以了 参考技术D 显示的时候用convert函数转换成字符类型的,就可以显示成0.10了。

以上是关于sql类型 money 小数不显示开头的0的主要内容,如果未能解决你的问题,请参考以下文章

sql表小数点前面的0不显示问题

如何让SQL不显示小数点后的0

sql查询用到两个字段相除,如何让他保留小数两位

为啥sql语句中float数据保留有效数据后小数点前的0不显示

sql server控制小数显示位数的解决办法。

oracle如何显示小数点前面的0