一道java习题

来源:互联网 发布:途虎轮胎靠谱吗 知乎 编辑:程序博客网 时间:2024/05/17 06:46

这道题的答案网上不多,这种实现方法目前独一无二,若是转载或者复制,

请说明来自 渡客ITer博客http://blog.sina.com.cn/luolongfei120 谢谢

 

题目内容:

 

 

实现代码:

  public class GNBExc {

 
 public static void main(String[] args) {
  Scanner sc = newScanner(System.in);
  System.out.println("输入一件物品的价格(范围在0.10~5.00元:");
  float n =Float.valueOf(sc.next());
  float left = 0;
  
  //1元
  int oneyuanCount =(int)(n/1);
  left =mysubtract(n,oneyuanCount*1.0f);
  
  //五角
  int wumaoCount =(int)(left/0.5);
  left =mysubtract(left,wumaoCount*0.5f);
  
  //两角
  int liangmaoCount =(int)(left/0.2);
  left =mysubtract(left,liangmaoCount*0.2f);
  
  //一角
  int onemaoCount =(int)(left/0.1);
  left =mysubtract(left,onemaoCount*0.1f);
  
  //五分
  int wufenCount =(int)(left/0.05);
  left =mysubtract(left,wufenCount*0.05f);
  
  //两分
  int liangfenCount =(int)(left/0.02);
  left =mysubtract(left,liangfenCount*0.02f);
  
  //一分
  BigDecimal b = newBigDecimal(Float.toString(left/0.01f));
  intonefenCount=(int)b.floatValue();

  System.out.println("一元数量:"+oneyuanCount);
  System.out.println("五角数量:"+wumaoCount);
  System.out.println("两角数量:"+liangmaoCount);
  System.out.println("一角数量:"+onemaoCount);
  System.out.println("五分数量:"+wufenCount);
  System.out.println("两分数量:"+liangfenCount);
  System.out.println("一分数量:"+onefenCount);

 }
 
 //解决float型数据丢失精度问题
 public static float mysubtract(float f1,floatf2){
  BigDecimal b1 = newBigDecimal(Float.toString(f1));
  BigDecimal b2 = newBigDecimal(Float.toString(Float.valueOf(f2)));
  return b1.subtract(b2).floatValue();//b1-b2
 }
}

 

有什么不明白的,请评论提问或者直接留言!!!!!

0 0
原创粉丝点击