当前位置:  技术问答>java相关

大虾帮忙啊!高分请教,在线等待,立即给分...

    来源: 互联网  发布时间:2017-04-21

    本文导语:  大虾们看一下下面的代码:     double f = 12.121;    double s = java.lang.Math.round(f);    double t = f-s;    System.out.println(f);    System.out.println(s);    System.out.println(t); 输出结果是: 12.121 12.0 0.12100000000000044 这是为...

大虾们看一下下面的代码: 
   double f = 12.121;
   double s = java.lang.Math.round(f);
   double t = f-s;
   System.out.println(f);
   System.out.println(s);
   System.out.println(t);
输出结果是:
12.121
12.0
0.12100000000000044
这是为什么呢?怎么解决?能不能说的详细一点。
还有用float时也一样

|
需要知道精确结果, 不能用float或者double. 用int, 或者BigDecimal, 下面是一个小例子: 计算1元钱钱可以买多少糖果. 其中糖果一毛钱一个. 
//错误的, 使用double型
public class InappropriateFloat {
   public static void main(String[] args) {
       double funds = 1.00;
       int itemsBought = 0;
       for (double price = .10; funds >= price; price += .10) {
           funds -= price;
           itemsBought++;
       }
       System.out.println(itemsBought + " items bought.");
       System.out.println("Change: ¥" + funds);
   }

//使用整型, 用分计算
public class IntVersion {
   public static void main(String[] args) {
       int itemsBought = 0;
       int funds = 100;
       for (int price = 10; funds >= price; price += 10) {
           itemsBought++;
           funds -= price;
       }
       System.out.println(itemsBought + " items bought.");
       System.out.println("Money left over: "+ funds + " cents");
   }
}

//用BigDecimal计算
import java.math.BigDecimal;

public class BigDecimalVersion {
   public static void main(String[] args) {
       final BigDecimal TEN_CENTS = new BigDecimal( ".10");

       int itemsBought = 0;
       BigDecimal funds = new BigDecimal("1.00");
       for (BigDecimal price = TEN_CENTS;
            funds.compareTo(price) >= 0;
            price = price.add(TEN_CENTS)) {
           itemsBought++;
           funds = funds.subtract(price);
       }
       System.out.println(itemsBought + " items bought.");
       System.out.println("Money left over: ¥" + funds);
   }
}

这是Java高效编程上的例子。 
我测试过没有问题,你试下~~

    
 
 

您可能感兴趣的文章:

  • 高分:有那位大大虾知道通过Socket得到服务器的类型,等等
  • 高分请教大虾linux做网关的问题!急!!!
  • 哪位大虾有enhydra的技术文档,给一份或提供线索。一定高分向送(66)
  • 高分求助:哪位大虾对resin的设置比较熟悉?请进!
  • 大虾们谁有linux desktop 3.0(红旗)的序列号呀,高分求救!500
  • 大虾救命!高分回报!感恩不尽!
  • 今天在线,哪位大虾来指点,高分回报,不够再发帖补....
  • Tomcat从网上下不下来,那位大虾给我传到邮箱里,高分相送!
  • 哪位大虾知道lsof的执行流程?高分求助~~~~~~~~~
  • 高分求助,请教关于在ARM Linux下启动goahead服务器的问题。很急,在线等待,希望各位大虾帮帮,万分感激
  • 高分酬谢!各位大虾对Linux操作系统的哪些部分感兴趣?感觉什么方向最有前途?
  • 哪位大虾有jsp+sql server的留言版,高分相送
  • 各位大虾,请教装了REDHAT9操作系统后,启动时无法引导到LINUX,请教该如何解决啊
  • 请教大虾,关于grant
  • ☆ 请教大虾,如何在jar文件中设置 main-class ☆
  • 光驱不识别问题,请教大虾
  • 请教大虾:),获取线程id的问题
  • 请教大虾关于红旗5.0的安装问题(在线等待)
  • 菜鸟请教各位大虾!
  • 请教各位大虾们,我的忧愁你能解决!
  • 很奇怪的问题,请教各位大虾
  • Linux大虾们,请教lds.
  • 初次使用Linux,向各位大虾请教几个低级问题……
  • 小弟有一简单问题向各位大虾请教:
  • 请教各位大虾,关于定时器
  • 各位大虾,请教一个问题
  • 请各位大虾介绍几个好一点的linux论坛,谢谢! iis7站长之家
  • 请教大虾,ps aux 的问题,在此谢过!
  • 请教QT大虾
  • 请教用过mmap的大虾
  • 在AIX 5.3 上编译程序的问题,请教各位大虾
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 各位大虾,小弟有一事不明,请大虾赐教!
  • 在solaris下如何卸载wu-ftpd???????????????????????谢谢大虾!!!!!!!!!!
  • 请大虾们谈谈linux和unix的异同吧
  • 请大虾,详细介绍一下JavaBean的写法,和调用过程!
  • 对LDAP有研究的大虾请进,见者有分
  • 超级新手菜鸟请问各位大虾!
  • 各位大虾,一个初学者该怎样开始学习java?
  • 请问各位大虾,什么地方有Jsp学习资料?
  • 哪位大虾知道weblogic与websphere的差别?
  • 大虾救命!APACHE没有理睬JSP?!!!
  • 请问各位大虾,如何把一个String赋值给一个Char[]??
  • 大虾救命啊!!!50分!!!
  • 哪位大虾指点一下哪里有weblogic下载啊???
  • 请问各位unix大虾,哪有免费的unix下载?
  • 初学者求救!!哪位大虾给点源代码?
  • 在下初学java,请各位大虾推荐几个java学习网站吧!
  • 请各位大虾介绍几个好一点的linux论坛,谢谢!
  • 大虾救命,dos下面怎么输入中文?
  • 请问大虾们,如何学习linux?
  • session里面可以放整型数吗?大虾请指教!!!


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3