VB如何声明数字变量

kelly_leecn 2010-02-19 07:17:38
我有一个数字是从数据库里面取出的,该数据库的字段数字类型是decimal 13,至少要保留4位小数
,我从这个字段取到数后要赋给一个变量fquantity,这个变量我设成single(dim fquantity as single),但是发现有的时候这个数本来是0的,传递到后面的时候却变成了一个莫名奇妙的数字,我觉得很奇怪,我估计是我的申明错了。那么应该如何声明呢?还有就是金额,应该如何声明?麻烦问一下大家。
...全文
444 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
king06 2010-02-20
  • 打赏
  • 举报
回复
直接用字符串来获取吧
chinaboyzyq 2010-02-20
  • 打赏
  • 举报
回复
[FQuantity] [decimal](23, 10) NULL ,
从以上看出FQuantity字段为decimal类型,整数部分长度13位,小数部分长度10位,总长度23位。

sql server的
decimal 数据类型最多可存储 38 个数字,所有数字都能够放到小数点的右边。decimal 数据类型存储了一个确定的数字表达法;没有存储值的近似值。
vb6的
单精度变量总长度8位(含小数点),如8.123456、8123.456
双精度变量总长度16位(含小数点),如1234567890123.45、1234567890.12345

把它放入无论是单精度变量还是双精度变量都必然造成精度上的不准确,但不会出现楼主说的莫名奇妙的数字;考虑把它放入VB的Decimal变量或Currency变量都会好些。

金额,应该如何声明?
Currency 数据类型在货币计算与定点计算中很有用,在这种场合精度特别重要。
bcrun 2010-02-19
  • 打赏
  • 举报
回复
可能精度不够吧,还有Decimal也可试下, 这方面没啥经验,就不多猜了
kelly_leecn 2010-02-19
  • 打赏
  • 举报
回复
double没有试过,那为什么single不行呢?很奇怪
bcrun 2010-02-19
  • 打赏
  • 举报
回复
你说single不行,那double呢
kelly_leecn 2010-02-19
  • 打赏
  • 举报
回复
声明带小数点的数字大家平时都申明成什么类型呢?
flesu 2010-02-19
  • 打赏
  • 举报
回复
贴出代码就知道了。数据库的定义出贴出来。
kelly_leecn 2010-02-19
  • 打赏
  • 举报
回复
SQL SERVER

CREATE TABLE [dbo].[m_QuantityBalance] (
[MYear] [int] NOT NULL ,
[MPeriod] [int] NOT NULL ,
[FQuantity] [decimal](23, 10) NULL ,
[MMoney] [MONEY] NULL
) ON [PRIMARY]
GO
  • 打赏
  • 举报
回复
decimal 13?
是什么数据库?
(但是发现有的时候这个数本来是0的,传递到后面的时候却变成了一个莫名奇妙的数字)
上代码看看

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧