挂海论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
 友情提示:文字/图片广告均非网站意见,请担保交易勿直接付款,由此产生的责任自负
玩游戏来117游戏网(H5不下载也能玩手游传奇,吃鸡,竞技都有)天下盾/国内/免实名/免备案CDN无视一切CC/DD攻击 找塔科夫作者TG @wuhao1954 QQ283931494 出租内核驱动读写保护,价格亲民,高品质群:530544047 →入驻S9企业发卡网各种全黑号辅助群:475351077
██【我要租此广告位】██... .
查看: 2039|回复: 1
打印 上一主题 下一主题

[推荐/精华] Java的Double精度丢掉解决办法

[复制链接]
3正式会员
171/300

171

积分

56

主题

4

听众
已帮网友解决0 个问题
好评
0
贡献
115
海币
1319
交易币
0
跳转到指定楼层
楼主
发表于 2017-5-7 09:00:48 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
提醒:若下载的软件是收费的"请不要付款",可能是骗子,请立即联系本站举报,执意要付款被骗后本站概不负责。(任何交易请走第三方中介,请勿直接付款交易以免被骗!切记).

友情提示:文字/图片广告均非本站意见,请担保交易勿直接付款,由此产生的责任自负!!!↑↑


本帖最后由 Jaolkaj 于 2017-5-7 09:01 编辑

论题|开|端|前,我想说一句|无|关|的|论题,也是鼓舞像我相同的初学者
如果有什么简|略|易|懂|的|源|码|或许制品软件,欢迎共享并剖析给我们看,没准你|发|的|一|个|帖|子|被其他人看到恰好让他人收益呢,并且也能股动他人一同互动
我之|前|害怕,不敢发帖,怕被论坛大佬讪笑,可是|我|今|日|看|见|一位同学发的求助帖有我刚学过的东西,可是他的帖子|没|有|剖|析|,我就充任解说员吧,给我们剖析一下

  1. public class text{
  2.         public static void main(String[] args){
  3.         double b=3.0;
  4.         double sum=30000;
  5.         double i=0.1;
  6.         double c=b+i;
  7.         while(i<=0.3){        
  8.                 sum=sum+c*360;
  9.                 System.out.println(sum);i++;
  10.                 }
  11.         }
  12. }
复制代码
咱们能够看出,最起码的不算大错的过错即是类名首字母必须大写并且每行只允许有一条代码,这是标准

我觉得最简单的解决办法即是:

  1. package Qb;

  2. public class Txx {

  3.         public static void main(String[] args) {
  4.                  
  5.                 double b = 3.0;
  6.                 double sum = 30000;
  7.                 double q=0.1;
  8.                 double c = b + q;
  9.                 for (int i = 1;i <= 3;i++) {
  10.                         sum = sum + c*360;
  11.                         System.out.println(sum);
  12.                         q+=0.1;
  13.                         
  14.                 }
  15.         }

  16. }
复制代码
运行结果如下:


但是我觉得楼主是不想创建新的变量,所以我又想办法:
  1. package Bb;

  2. import java.text.DecimalFormat;

  3. public class Qe {

  4.         public static void main(String[] args) {
  5.                 double b = 3.0;
  6.                 double sum = 30000;
  7.                 float i = 0.1f;
  8.                 double c =b+i;
  9.                 while (i <= 0.3) {
  10.                         sum=sum+c*360;
  11.                         DecimalFormat df = new DecimalFormat("0.0");
  12.                         System.out.println(df.format(sum));
  13.                         i += 0.1;
  14.                 }
  15.         }

  16. }
复制代码
运转成果如下:


咱们发现,成果不对,由于Double精度丢掉,0.3成为0.30000000000000004     循环条件就不对了,这个我也很无奈啊,等待大牛给一个解决方案,上边那个简略的解决方案也是如此
循环条件只能改成i<0.4才可以正常运转,持续测验吧,这个一望而知,仍是给我们演示一下吧
  1. package Bb;

  2. import java.text.DecimalFormat;

  3. public class Qe {

  4.         public static void main(String[] args) {
  5.                 double b = 3.0;
  6.                 double sum = 30000;
  7.                 float i = 0.1f;
  8.                 double c =b+i;
  9.                 while (i < 0.4) {
  10.                         sum=sum+c*360;
  11.                         DecimalFormat df = new DecimalFormat("0.0");
  12.                         System.out.println(df.format(sum));
  13.                         i += 0.1;
  14.                 }
  15.         }

  16. }
复制代码









联系我时,请说是在 挂海论坛 上看到的,谢谢!



上一篇:传智播客 最新教程Java基础视频教学-深入浅出 JAVA易懂入门级教材视频教程
下一篇:Java基础自学视频教程免费分享!
免责声明:
1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关。一切关于该内容及资源商业行为与www.52ghai.com无关。

2、本站提供的一切资源内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。

3、本站信息来自第三方用户,非本站自制,版权归原作者享有,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。

4、如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵犯你版权的,请邮件与我们联系删除(邮箱:[email protected]),本站将立即改正。

17

积分

1

主题

2

听众
已帮网友解决0 个问题
好评
0
贡献
16
海币
39
交易币
0
沙发
发表于 2017-5-8 01:36:04 | 只看该作者
没想到我刚在吾爱发的帖子,就被你盗到挂海原文地址:http://www.52pojie.cn/forum.php?mod=viewthread&tid=606006&mobile=2
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

免责声明|Archiver|手机版|小黑屋|挂海论坛

GMT+8, 2024-4-29 06:14 , Processed in 0.362420 second(s), 39 queries , Gzip On.

Powered by Discuz! X3.2

本站资源来自互联网用户收集发布,如有侵权请邮件与我们联系处理。xhzlw@foxmail.com

快速回复 返回顶部 返回列表