首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 字段里面怎么控制小数位数 [已结贴,结贴人:Eric2Smile]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-04-24 14:27:21 楼主
    有个“成绩”字段,是double型的,我在按钮代码里面通过计算出一个值存放到了一个double型变量a里面。
    现在我把a的值赋给“成绩”字段,结果表里面的值有好多位小数,请问怎么样让该字段的值只有一位小数?在代码里对变量做操作还是对字段属性做设置?
    20  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-04-24 14:29:521楼 得分:4
    存储格式是不能改变的,用FORMAT改变显示格式
    ss=format(123456.7789,'######.##')
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-04-24 14:38:412楼 得分:0
    是说这样吗?
    set ss=currentdb.openrecordset("table")
    ss.addnew
    ss("成绩")=a
    ss=format(123456.7789,'######.#')
    ss.update

    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-04-24 14:43:553楼 得分:2
    不是,存入数据不需要转换,当要显示时才用FORMAT
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • liuyann
    • 等级:
    发表于:2008-04-24 20:04:474楼 得分:4
    现在我把a的值赋给“成绩”字段,结果表里面的值有好多位小数.

    由于计算机本身的限制,无法精确地用浮点数来表示小数,参见IEEE 754

    所以在你的表结构中改一下,把字段类型改成decimal,用这种格式可以无误差的表示小数,当然牺牲一点效率


    ==== ====
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • liuyann
    • 等级:
    发表于:2008-04-24 20:06:595楼 得分:0
    或者用

    货币
    用于存储货币值,并且计算期间禁止四舍五入。
    存储 8 个字节。
    ==== ====
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-04-24 21:10:176楼 得分:0
    字段类型改成decimal的过后,只能存整数了~~ 程序执行时说,字段长度会被截短,结果看表里存储的结果,存的都是整数,连一位小数都没有
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • liuyann
    • 等级:
    发表于:2008-04-24 21:12:227楼 得分:5
    decimal

    需要在字段类型中指定一下小数的位数 ,你不指定的话,默认小数位为0
    ==== ====
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-04-24 22:43:008楼 得分:0
    不是吧,DECIMAL它默认小数位就是1位的啊~
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • liuyann
    • 等级:
    发表于:2008-04-24 22:44:419楼 得分:5
    不会啊,

    precision 18
    scale 0

    小数位是0, 不管多少, 改成你想要的值就行了
    ==== ====
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-04-24 22:54:3710楼 得分:0
    是说把那个  数值范围从0改成1啊?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • liuyann
    • 等级:
    发表于:2008-04-24 22:57:0811楼 得分:0
    小数位默认是0

    你准备让小数有几位,就改成几
    ==== ====
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-04-24 22:59:0312楼 得分:0
    改成1到是只保留了1位小数了,但是程序运行要将double变量的值写進数据库的时候,出编译错误了~
    说“对十進制的修改导致数据的截断”,然后就相当于操作失败了~~
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • liuyann
    • 等级:
    发表于:2008-04-24 22:59:5513楼 得分:0
    能把自己的问题清晰的告诉别人是件很难的事.

    上传MDB文件 www.access911.net/csdn



    加入QQ群  19055578  晚19:00 - 24:00在线
    ==== ====
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-04-30 19:05:4614楼 得分:0
    该回复于2008-05-04 10:47:51被版主删除
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-09 16:03:4815楼 得分:0
    我解决了,在程序里面用round(),赋值给表字段前就控制好小数位数
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-09 16:06:2816楼 得分:0
    用FORMAT也可以,自己解决更好,呵呵
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved