首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 数据类型的问题 [无满意答案结贴]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-08-20 16:38:11 楼主
    需要用LONG型除以一个常数,但是会损失精度,无法完成编译。
    怎么解决?期待高手……
    20  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-08-20 16:57:291楼 得分:0
    (Long)A = (Long)B/(Long)C ; 这样试试
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-08-20 17:14:032楼 得分:0
    除以常数,谢谢
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-08-20 19:16:413楼 得分:0
    会损失么?具体点。举例说一下
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-08-20 21:36:474楼 得分:0
    弄个例子撒
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • shz0427
    • 等级:
    发表于:2008-08-20 21:54:175楼 得分:0
    不太懂
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-08-20 22:29:206楼 得分:0
    帮顶
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • fosjos
    • 等级:
    发表于:2008-08-21 09:33:577楼 得分:0
    引用楼主 rogerliu0303 的帖子:
    但是会损失精度,无法完成编译。

    先转成double
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-08-21 12:21:048楼 得分:0
    long int a=10;
    System.out.println(a/10);
    完成不了编译,不能计算
    我用的NetBeans
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • fosjos
    • 等级:
    发表于:2008-08-21 13:10:489楼 得分:0
    (double)a/10
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-08-21 13:53:3310楼 得分:0
    double或float不能用来做商业计算,用来做工程计算没有问题,在商业计算中应使用java.math.BigDecimal这个玩意。

    其实计算机只会做加法,除法也好,乘法也好,最终都会转成加法来做。我记得上学的时候在《计算机组成原理》课程中讲到,浮点数做除法的时候有个末位横至1法则,具体也记不清了。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-08-21 14:04:1511楼 得分:0
    不是很清楚说的什么意思
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-08-21 14:14:5212楼 得分:0
    如果出现精度丢失问题可以考虑用BigDecimal解决。BigDecimal还可以控制数据精度
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-08-21 16:39:5513楼 得分:0
    引用 10 楼 jianpc 的回复:
    double或float不能用来做商业计算,用来做工程计算没有问题,在商业计算中应使用java.math.BigDecimal这个玩意。

    其实计算机只会做加法,除法也好,乘法也好,最终都会转成加法来做。我记得上学的时候在《计算机组成原理》课程中讲到,浮点数做除法的时候有个末位横至1法则,具体也记不清了。



    支持!!!!!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-08-21 16:41:0414楼 得分:0
    记得在做计算器的时候用double和float就不行,有BUG
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • ZangXT
    • 等级:
    发表于:2008-08-21 16:43:2715楼 得分:0
    引用 8 楼 rogerliu0303 的回复:
    long int a=10;
    System.out.println(a/10);
    完成不了编译,不能计算
    我用的NetBeans

    写错了吧,java没有long int
    直接long a=10;
    修改 删除 举报 引用 回复

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