java百分比计算

2021-01-05 15:04发布

如何对map集合value值,value为int类型,进行百分比统计保留2位,集合value总数必须为100%。

如何对map集合value值,value为int类型,进行百分比统计保留2位,集合value总数必须为100%。

11条回答
kitidog2016
2楼 · 2021-01-06 08:55
//方法1public static String accuracy(double num, double total, int scale){  DecimalFormat df = (DecimalFormat)NumberFormat.getInstance();  //可以设置精确几位小数  df.setMaximumFractionDigits(scale);  //模式 例如四舍五入  df.setRoundingMode(RoundingMode.HALF_UP);  double accuracy_num = num / total * 100;  return df.format(accuracy_num)+"%";}        int num = 1;        int total = 100;        int scale = 1;        String result = accuracy(num, total, scale);        System.out.println(result);//1%        int num = 1;        int total = 3;        int scale = 1;        String result = accuracy(num, total, scale);        System.out.println(result);//33.3%        int num = 1;        int total = 1000;        int scale = 1;        String result = accuracy(num, total, scale);        System.out.println(result);//0.1%        int num = 1;        int total = 10000;        int scale = 1;        String result = accuracy(num, total, scale);        System.out.println(result);//0%//方法二//0表示的是小数点  之前没有这样配置有问题例如  num=1 and total=1000  结果是.1      DecimalFormat df = new DecimalFormat("0%");        //可以设置精确几位小数        df.setMaximumFractionDigits(1);        //模式 例如四舍五入        df.setRoundingMode(RoundingMode.HALF_UP);        int num = 1;        int total = 1000;        double accuracy_num = num * 1.0/ total * 1.0;        System.out.println(df.format(accuracy_num));


小鹿姐姐
3楼 · 2021-01-06 09:11
  1. public class Test1 {

  2. public static String myPercent(int y, int z) {

  3. String baifenbi = "";// 接受百分比的值

  4. double baiy = y * 1.0;

  5. double baiz = z * 1.0;

  6. double fen = baiy / baiz;

  7. // NumberFormat nf = NumberFormat.getPercentInstance(); 注释掉的也是一种方法

  8. // nf.setMinimumFractionDigits( 2 ); 保留到小数点后几位

  9. DecimalFormat df1 = new DecimalFormat("##.00%"); // ##.00%

  10. // 百分比格式,后面不足2位的用0补齐

  11. // baifenbi=nf.format(fen);

  12. baifenbi = df1.format(fen);

  13. System.out.println(baifenbi);

  14. return baifenbi;

  15. }

  16. public static void main(String[] args) {

  17. myPercent(29,59);

  18. }

  19. }



是你的小甜心呀
4楼 · 2021-01-06 09:47

float a=10,b=23;
DecimalFormat df = new DecimalFormat("#.00");
System.out.println(df.format(Float.valueOf((a/b))*100)+"%");

樱田妮妮NiNi
5楼 · 2021-01-06 11:09

JAVA计算百分比参考以下操作:

int num1 = 7;  

int num2 = 9;  

// 创建一个数值格式化对象

NumberFormat numberFormat = NumberFormat.getInstance();  

// 设置精确到小数点后2位  

numberFormat.setMaximumFractionDigits(2);  

String result = numberFormat.format((float) num1 / (float) num2 * 100);  

System.out.println("num1和num2的百shu分比为:" + result + "%");


我是大脸猫
6楼 · 2021-01-06 13:59

Map 集合的特点
能够存储唯一的列数据(唯一,不可重复)set
能够存储可以重复的数据(可重复)list
值的顺序取决于键的顺序
键和值都是可以存储 null 元素的
一个映射不能包含重复的键,每个键最多只能映射一个值
实现类:HashMap ,底层是哈希表结构
特点:
键无序,唯一,类似于Set集合
值有序,可重复,类似于List
底层数据结构是哈希表,保证键唯一
允许键为null,值为null
实现类:LinkedHashMap ,底层是哈希表和链表结构
特点:
键有序,唯一,
值有序,可重复,类似于List
底层数据结构是哈希表和链表,哈希表保证键唯一,链表保证键有序
实现类:TreeMap
具体取决于使用的构造方法。
特点:
键可排序,唯一,
值有序,可重复,类似于List
底层数据结构是自平衡的二叉树,可排序
排序方式类似于TreeSet,分为自然排序和比较器排序,具体取决于使用的构造方法
实现类:TreeMap
以弱键 实现的基于哈希表的 Map。在 WeakHashMap 中,当某个键不再正常使用时,
将自动移除其条目。更精确地说,对于一个给定的键,其映射的存在并不阻止垃圾回收器对该键的丢弃,
这就使该键成为可终止的,被终止,然后被回收。
丢弃某个键时,其条目从映射中有效地移除,因此,该类的行为与其他的 Map 实现有所不同。

接口:Dictionary
实现类:HashTable
特点:
不允许null键和null值
线程安全,效率低
面试题:HashMap和Hashtable的区别
HashMap是不安全的不同步的效率高的 允许null键和null值
Hashtable是安全的同步的效率低的 不允许null键和null值
底层都是哈希表结构
常用功能:

/*
 * 1.添加功能
 *      V put(K key, V value)  
 *      void putAll(Map m) 
 * 2.删除功能
 *      V remove(Object key) 
 *      void clear() 
 * 3.遍历功能
 *      Set keySet() 
 *      Collection values()
 *      Set> entrySet() 
 * 4.获取功能
 *      V get(Object key) 
 * 5.判断功能
 *      boolean containsKey(Object key) 
 *      boolean containsValue(Object value) 
 *      boolean isEmpty() 
 * 6.修改功能
 *      V put(K key, V value) 
 *      void putAll(Map m) 
 * 7.长度功能
 *      int size()
 */1234567891011121314151617181920212223

遍历功能:

  Set keys = map.keySet();
  for(String str : keys){
   System.out.println(str);
  }
  
  System.out.println("============");
  Collection values = map.values();
  for(String str : values){
   System.out.println(str);
  }
  
  System.out.println("============");
  Set> keyValue= map.entrySet();
  for(Entry str : keyValue){
   String key = str.getKey();
   String value = str.getValue();
   System.out.println(key + " = " + value);
  }
  
  System.out.println("============");
  Set key = map.keySet();
  Iterator it = key.iterator();
  while(it.hasNext()){
   String ikey = it.next();
   String ivalue = map.get(ikey);
   System.out.println(ikey+" = " + ivalue);
  }
  
  System.out.println("============");
  Set> keyValues= map.entrySet();
  Iterator> iter = keyValues.iterator();
  while(iter.hasNext()){
   Entry ikeyValue = iter.next();
   System.out.println(ikeyValue.getKey() + "=" + ikeyValue.getValue());
  }


霸王龙的龙
7楼 · 2021-01-07 09:21

JAVA计算百分比参考以下操作:

int num1 = 7;  

int num2 = 9;  

// 创建一个数值格式化对象

NumberFormat numberFormat = NumberFormat.getInstance();  


py大白
8楼 · 2021-01-08 09:46

JAVA计算百分比参考以下操作:

int num1 = 7;  

int num2 = 9;  

// 创建一个数值格式化对象

NumberFormat numberFormat = NumberFormat.getInstance();  

// 设置精确到小数点后2位  

numberFormat.setMaximumFractionDigits(2);  

String result = numberFormat.format((float) num1 / (float) num2 * 100);  

System.out.println("num1和num2的百shu分比为:" + result + "%");

// 创建一个数值格式化对象

NumberFormat numberFormat = NumberFormat.getInstance();  

// 设置精确到小数点后2位  

numberFormat.setMaximumFractionDigits(2);  

String result = numberFormat.format((float) num1 / (float) num2 * 100);  

System.out.println("num1和num2的百shu分比为:" + result + "%");


清屿
9楼 · 2021-01-08 16:22

  float a=10,b=23;

DecimalFormat df = new DecimalFormat("#.00");
System.out.println(df.format(Float.valueOf((a/b))*100)+"%");


相关问题推荐

  • 回答 156

    对于每一位才开始接触JAVA的新手来说,先不要管算法和数据结构,大多数简单的程序不需要用到算法和数据结构,所以当你真正需要时再去学习。编程一段时间以后,你就会知道在哪些地方用到他们。这时知道算法的名字并了解它们的功能,然后动手去实践。当我们在去...

  • 回答 93

    2个都很好就业,更关键的是要学得到东西

  • 回答 12
    已采纳

    获取Map集合中所有的key可以通过map集合的keySet()方法获取例如:    Map map = new HashMap();    map.put(xx,xx); //存放数据    //.... 省略    Set set = map.keySet();    //可以通过迭代器进行测试    Iterator iter = set.iter...

  • 回答 56
    已采纳

    不同年龄,不同掌握程度,学历,找工作城市,面试能力这是一个多方面影响的结果,如果是平均值的话,全国平均薪资14k左右

  • 回答 38

    具体学多久,根据自己的学习力,自律性、解决问题能力来决定若系统性学习,跟着讲师的节奏走,大概半年左右,有专业的讲师把课程进行规划,尽心系统学习,有问题,讲师会帮忙解决,学习的效率很高,避免了自学中出现各种问题解决不了,而耽误很多时间,可能会...

  • 回答 23
    已采纳

    (1)idea启动时会有两个快捷方式,安装完后默认生成在桌面的是32位的idea的快捷方式,如果我们使用这个快捷方式运行大项目,一般都会很卡。解决方法是找到idea的安装目录,然后进入bin文件夹,找到名称为idea64的应用程序,右键他生成桌面快捷方式。以后每次...

  • BIO与NIO、AIO的区别2020-05-19 15:59
    回答 4
    已采纳

    IO的方式通常分为几种,同步阻塞的BIO、同步非阻塞的NIO、异步非阻塞的AIO。一、BIO     在JDK1.4出来之前,我们建立网络连接的时候采用BIO模式,需要先在服务端启动一个ServerSocket,然后在客户端启动Socket来对服务端进行通信,默认情况下服务端需要...

  • Java方法的命名规则2021-04-06 19:07
    回答 31

    ava是一种区分字母的大小写的语言,所以我们在定义变量名的时候应该注意区分大小写的使用和一些规范,接下来我们简单的来讲讲Java语言中包、类、变量等的命名规范。(一)Package(包)的命名Package的名字应该都是由一个小写单词组成,例如com、xuetang9、compan...

  • 回答 2

    public class Point {    private int x;    private int y;    public int getX() {        return x;    }    public void setX(int x) {        this.x = x;    }    public int getY() {        return y;    } ...

  • 回答 6

    经典版单例模式public class Singleton {        private static Singleton uniqueInstance;//利用一个静态常量来记录singleton类的唯一实例。     private Singleton() {     }     public static  Singleton getInstance()...

  • 回答 3

    哈希表的长度一般是定长的,在存储数据之前我们应该知道我们存储的数据规模是多大,应该尽可能地避免频繁地让哈希表扩容。但是如果设计的太大,那么就会浪费空间,因为我们跟不用不到那么大的空间来存储我们当前的数据规模;如果设计的太小,那么就会很容易发...

  • 回答 14

    1. DOM(Document Object Model)        DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准。DOM是以层次结构组织的节点或信息片断的集合。这个层次结构允许开发人员在树中寻找特定信息。分析该结构通常需要加载整个文档和构造层次结构,然后才...

  • 回答 19

    1)作用不同: throw用于程序员自行产生并抛出异常; throws用于声明在该方法内抛出了异常2) 使用的位置不同: throw位于方法体内部,可以作为单独语句使用; throws必须跟在方法参数列表的后面,不能单独使用。3)内容不同: throw抛出一个异常对象,且只能是...

  • 回答 11

    基本执行过程如下:1)程序首先执行可能发生异常的try语句块。2)如果try语句没有出现异常则执行完后跳至finally语句块执行;3)如果try语句出现异常,则中断执行并根据发生的异常类型跳至相应的catch语句块执行处理。4)catch语句块可以有多个,分别捕获不同类型...

  • 回答 20

    100-199 用于指定客户端应相应的某些动作。 200-299 用于表示请求成功。 300-399 用于已经移动的文件并且常被包含在定位头信息中指定新的地址信息。 400-499 用于指出客户端的错误。 400 语义有误,当前请求无法被服务器理解。 401 当前请求需要用户验证...

  • 回答 16

    异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的通常操作中可能遇到的异常,是一种常见运行错误,只要程序设计得没有问题通常就不会发生。受检异常跟程序运行的上下文环境有关,即使程序设计无误,仍然可能因使用的问题而引发。Java编译...

没有解决我的问题,去提问