请教关于小数点的数据类型设置 1.SQL Server中的length是指字节,不是位数2.可能是代码中有问题吧。如果数据库设置成decimal(20,2),保存1234567.65应该没有问题你可以直接在SQL Server中操作。如果在SQL Server操作正常,就说明程序有问题。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1. decimal是用字节保存数据,它与精度定义的关系如下:精度 存储字节数 1 - 9 5 10-19 9 20-28 13 29-38 17 2. 存储过程使用float,这个可能是导致数据有问题的原因之一,因为float是保存的非精度数据. 另外,程序中的显示格式也会影响. 第一个问题:length显示13, 是因为该字段占用了13个字节的硬盘空间。-------------------------------------------------------------help document ;decimal 和 numeric带定点精度和小数位数的 numeric 数据类型。decimal[(p[, s])] 和 numeric[(p[, s])]定点精度和小数位数。使用最大精度时,有效值从 - 10^38 +1 到 10^38 - 1。decimal 的 SQL-92 同义词是 dec 和 dec(p, s)。p(精度)指定小数点左边和右边可以存储的十进制数字的最大个数。精度必须是从 1 到最大精度之间的值。最大精度为 38。s(小数位数)指定小数点右边可以存储的十进制数字的最大个数。小数位数必须是从 0 到 p 之间的值。默认小数位数是 0,因而 0 <= s <= p。最大存储大小基于精度而变化。精度 存储字节数 1 - 9 5 10-19 9 20-28 13 29-38 17 -------------------------------------------------------------------第2个问题:应该是你的字段设置不正确。使用以下语句 更新表结构试下(tablename 改为你的数据表名):alter table tablename alter column [precision] decimal(18,2) 多谢楼上的几位朋友,第一个问题我搞明白了~但是我把表结构改成decimal(20,2),存储过程中的float改成decimal,程序中也都用decimal,显示格式没有限制,但还是...1234567.65成了1234568.00(好像进步了一点-_-!) 存储过程中的float改成decimal,程序中也都用decimal=================================================必须指定小数位数,否则默认是0 请教大家一个性能方面的问题 数据库连接字串中怎么加事务隔离级别 SQL基本语句 LEFT和Like那个效率高? 再发一帖,哪位大侠指点下,这sql应该怎么写 怎么才能把一个库中的内容完全的导到另一个库中 SQL2000一个表里的数据删了怎么恢复 没有备份 初学,两个小问题 请教:.DBF 导出数据到EXCEL表格? 如何给分? 数据进行倒出倒入!!在线等待啊!!!! 请教高手, 关于SQLSERVER2000事务间死锁的问题
精度 存储字节数
1 - 9 5
10-19 9
20-28 13
29-38 17
2. 存储过程使用float,这个可能是导致数据有问题的原因之一,因为float是保存的非精度数据.
另外,程序中的显示格式也会影响.
length显示13, 是因为该字段占用了13个字节的硬盘空间。-------------------------------------------------------------
help document ;decimal 和 numeric
带定点精度和小数位数的 numeric 数据类型。decimal[(p[, s])] 和 numeric[(p[, s])]定点精度和小数位数。使用最大精度时,有效值从 - 10^38 +1 到 10^38 - 1。decimal 的 SQL-92 同义词是 dec 和 dec(p, s)。p(精度)指定小数点左边和右边可以存储的十进制数字的最大个数。精度必须是从 1 到最大精度之间的值。最大精度为 38。s(小数位数)指定小数点右边可以存储的十进制数字的最大个数。小数位数必须是从 0 到 p 之间的值。默认小数位数是 0,因而 0 <= s <= p。最大存储大小基于精度而变化。
精度 存储字节数
1 - 9 5
10-19 9
20-28 13
29-38 17 -------------------------------------------------------------------
第2个问题:
应该是你的字段设置不正确。
使用以下语句 更新表结构试下(tablename 改为你的数据表名):alter table tablename alter column [precision] decimal(18,2)
但是我把表结构改成decimal(20,2),存储过程中的float改成decimal,程序中也都用decimal,显示格式没有限制,但还是...1234567.65成了1234568.00(好像进步了一点-_-!)
=================================================
必须指定小数位数,否则默认是0