您的位置:程序门 -> vb -> 基础类



请问为什么会生成随机小数?应该如何处理!谢谢!


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


请问为什么会生成随机小数?应该如何处理!谢谢!
发表于:2007-01-25 23:39:21 楼主
数据类型为decimal(38,20)
存储过程为
create   proc   proc_test_add
@id   int,
@quantity   decimal(38,20)
as
set   nocount   on
begin
insert   into   test(id,quantity)   values(@id,@quantity)
end

vb代码为
dim   cmd   as   new   command
dim   prm   as   new   parameter

set   cmd.activeconnection   =   cn
cmd.commandtype   =   adcmdstoredproc
cmd.commandtext   =   "proc_test_add "

set   prm   =   cmd.createparameter( "pid ",   adinteger,   adparaminput,   4,   text1.text)
cmd.parameters.append   prm

set   prm   =   cmd.createparameter( "pquantity ",   addouble,   adparaminput,   20,   text2.text)
cmd.parameters.append   prm

cmd.EXECute

假设text2.text的值为1.00259时,在保存到表时会变成1.00259000000000010000
请问为什么?

可是如果这样:
cn.EXECute   "insert   into   test(id,quantity)   values( "   &   text1.text   &   ", "   &   text2.text   &   ") "
就会保持原数!

发表于:2007-01-26 09:49:171楼 得分:0
表设计的时候不要用double,改用nvarchar
发表于:2007-01-26 10:27:112楼 得分:0
你用的什么数据库?不同数据库,有不同的处理方法
发表于:2007-01-26 10:47:023楼 得分:0
你用的是decimal(38,20),38是你的总大小,20是后面保留的小数位,你写20就会自动给你补0了。
建议换类型为float,或者取值后转换为double或者float类型


快速检索

最新资讯
热门点击