找零时刻

来源:互联网 发布:淘宝啮齿一号 编辑:程序博客网 时间:2024/04/30 21:33

如果你到商店去一个$1.10的打火机,给了他两美元,他应该找你多少钱

下面是一个解决问题的程序:

public class BaseDemo04{

 public static void main(String []args){

  System.out.println(2-1.1);
 }
}

它会打印出什么呢,你可能会很天真的认为是0.9,其实你错了。

一般来说,不是所有的小数都可以用二进制浮点数来精确表示的。

public class BaseDemo04{

 public static void main(String []args){
  //拙劣的解决方案,仍旧是使用二进制浮点数
  System.out.printf("%.1f",2-1.1);
 }
}

可以使用int,或long来解决问题

public class BaseDemo04{

 public static void main(String []args){
  
  System.out.println((200-110)+"cents");
 }
}

在要使用精确度答案时候最好要考虑浮点数的不精确性

原创粉丝点击