关于类型转换的问题(CTYPE(...,DOUBLE))

jeffersyan 2006-07-25 07:55:52
我从ORACLE里取出来的值是0.7938.怎么CTYPE(...,DOUBLE)后,就变成0.7937999...呢类,而在一些地方又是好的.
ORACLE里该字段的类型是NUMBER(6,4)
...全文
306 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
copall 2006-07-26
  • 打赏
  • 举报
回复
这可能是存入数据库之前的实际值~存入后就舍入到小数4位了
为了保险起见,就这样吧
Math.Round(CTYPE(...,DOUBLE),4)
阿牛138588 2006-07-25
  • 打赏
  • 举报
回复
mark
jeffersyan 2006-07-25
  • 打赏
  • 举报
回复
没有哎,我现在只想知道原因,真是郁闷啊.为什么其它值,取出来转换后就是对的,惟独这个不对.
sanjie88 2006-07-25
  • 打赏
  • 举报
回复
decimal
sanjie88 2006-07-25
  • 打赏
  • 举报
回复
用DECEMAL
sanjie88 2006-07-25
  • 打赏
  • 举报
回复
你用了float吧,在数据库
jeffersyan 2006-07-25
  • 打赏
  • 举报
回复
恩,十分确定取出来的是4位小数的,哎,这下损失大了.
真相重于对错 2006-07-25
  • 打赏
  • 举报
回复
Decimal
gzsxy8013 2006-07-25
  • 打赏
  • 举报
回复
你确定从数据中取出来的是这个值吗?
jeffersyan 2006-07-25
  • 打赏
  • 举报
回复
由于我这个数字是用来算钱的,它差那么几位,算出来的钱可就差了不少啊.
hhjjhjhj 2006-07-25
  • 打赏
  • 举报
回复
这很正常,简单的加减运算也会出现这样后面是很多9或类似1.00000000000000000001这种情况,这是运算精度问题。

16,556

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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