导航
  • 主页
  • 基础类
  • 应用实例
  • 新技术前沿

如何设计数据数类型,使起数字型的小数位在有小数时才显示?

ayurep 2007-12-18 05:23:32
如何设计数据数类型,使起数字型的小数位在有小数时才显示?
我的数据中,有些有小数,有些又没有小数.
我试了decimal(18, 2)和numeric(18, 2),他们使用得我没有小数的数据后面直接加上了.00

我用real可以得到我想要的效果,但是在进行sun运算时,确莫名其妙得多了一串小数.

比如表中字段amount,有数据是134、123.43、43、45.33、234、432.31
我要得就是直接这样,不须要再给我加个.00在后面,应该如何设置这个字段。

谢谢啦
...全文
75 点赞 收藏 8
写回复
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
pt1314917 2008-01-02
这种问题只有在显示的时候作处理
回复
qgmzhfj 2008-01-02
根据老乌龟写的,你可以自己在改下 ,把 col转换下 cast(num as varchar(50)) 把你的decimal类型数据转换为字符串
回复
ayurep 2008-01-02
看来只有在客户端来弄了,现在是用的是decimal(18, 2)

不知道我这种情况,用那种好些?
decimal(18, 2)
numeric(18, 2)

real计算出来有问题,以所不能用..
回复
hui_hui_2007 2007-12-19
real是浮点型,有误差的,不要使用。
另外,你的需求应该在客户端实现。在软件中对数据格式进行控制就行了。
回复
wangxuelid 2007-12-19
如何设计数据数类型,使起数字型的小数位在有小数时才显示?
--
我看这个不要处理
我的数据中,有些有小数,有些又没有小数.
我试了decimal(18, 2)和numeric(18, 2),他们使用得我没有小数的数据后面直接加上了.00
我用real可以得到我想要的效果,但是在进行sun运算时,确莫名其妙得多了一串小数.
比如表中字段amount,有数据是134、123.43、43、45.33、234、432.31
我要得就是直接这样,不须要再给我加个.00在后面,应该如何设置这个字段。
----

我只有在从数据库取出数据在处理了,,
回复
JL99000 2007-12-19
我想你的目的是从数据库里取出来的时候能把后面没小数点的变成整形,对吗
这样的话你可以页面上进行处理
回复
dawugui 2007-12-18
--转帖.
如果是字符串中存储的数字数据需要去掉小数中的尾部0, 则参考:


SELECT
col,
col_convert = CASE
WHEN CHARINDEX('.', col) = 0
THEN col
WHEN RIGHT(col, PATINDEX('%[^0]%', REVERSE(col))) LIKE '.%'
THEN LEFT(col, LEN(col) - PATINDEX('%[^0]%', REVERSE(col)))
ELSE LEFT(col, LEN(col) - PATINDEX('%[^0]%', REVERSE(col)) + 1)
END
FROM(
SELECT col = '100' UNION ALL
SELECT col = NULL UNION ALL
SELECT col = '.100' UNION ALL
SELECT col = '.100100' UNION ALL
SELECT col = '0.' UNION ALL
SELECT col = '0' UNION ALL
SELECT col = '100.1010' UNION ALL
SELECT col = '100.0000'
)A

-- 结果:
col col_convert
-------- -----------
100 100
NULL NULL
.100 .1
.100100 .1001
0. 0
0 0
100.1010 100.101
100.0000 100

(8 行受影响)
回复
dawugui 2007-12-18
和数据库无关,在前台显示时做处理。
回复
发动态
发帖子
MS-SQL Server
创建于2007-09-28

3.2w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
社区公告
暂无公告