java 小数点累加_按百分比抽题数,有小数累加法, 完美解决半题问题!!!

import java.math.BigDecimal;

import java.text.DecimalFormat;

import java.util.ArrayList;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

public class test2 {

public static void main(String[] args) {

List list=new ArrayList();

DecimalFormat df = new DecimalFormat("#.###");

Map maps2=new HashMap();

maps2.put("t", 31);

maps2.put("l", "s");

list.add(maps2);

for(int i=0;i<100;i++){

Map maps=new HashMap();

maps.put("t", 1);

maps.put("l", "z");

list.add(maps);

}

//   for(int i=0;i<100;i++){

//   Map maps=new HashMap();

//       maps.put("t", 1);

//       maps.put("l", "s");

//       list.add(maps);

//     }

Map maps=new HashMap();

maps.put("t", 50);

maps.put("l", "s");

list.add(maps);

Map maps1=new HashMap();

maps1.put("t", 19);

maps1.put("l", "s");

list.add(maps1);

int sumti=0;//总题数

int zongju=0;

int shenju=0;

BigDecimal num=new BigDecimal(0);//没有积累的小数:

BigDecimal nums=new BigDecimal(0);//有积累的小数

for(int i=0;i

int ti=0;//每个知识点,积累的小数题数,后的题数

BigDecimal db=new BigDecimal(0);

Map map=(Map)list.get(i);

BigDecimal dbs=new BigDecimal(Integer.parseInt(map.get("t").toString()));

BigDecimal b=new BigDecimal(81);//可以调整比例

System.out.println(map.get("l")+"--"+map.get("t"));

if("z".equals(map.get("l"))){

db=dbs.multiply(b).divide(new BigDecimal(100));

}else{

db=dbs.multiply(new BigDecimal(100).subtract(b)).divide(new BigDecimal(100));

}

String dbd=db+"";

String [] heshu=dbd.split("[.]");

if(heshu.length>1){//类别是小数不能混

dbd= "0."+heshu[1];

num=new BigDecimal(df.format(new BigDecimal(Double.parseDouble(dbd))));//正常算法得到的小数

}else{

num=new BigDecimal(0);

}

ti=Integer.parseInt(heshu[0]);//正常算法得到的整数

nums=num.add(nums);//正常算法得到的小数之和

if(Double.parseDouble(df.format(nums))>=1){//需要加题判断

ti+=1;

nums=new BigDecimal("0."+(nums+"").split("[.]")[1]);

}

if("z".equals(map.get("l"))){

zongju+=ti;

System.out.println(zongju);

}else{

shenju+=ti;

System.out.println(shenju);

}

sumti+=ti;

System.out.println("每个知识点的题数:"+ti+"---没有积累的小数:"+num+"--有积累的小数:"+nums);

}

System.out.println("总题数:"+sumti+"总局题数:"+zongju+"省局题数:"+shenju);

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值