java 按比例分配后得到小数,将小数取整,但不改变总数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 按比例分配后得到小数,将小数取整,但不改变总数相关的知识,希望对你有一定的参考价值。
比如10,分成3份,每个是3.33333,然后取整,变成类似,3,3,4,或者4,2,2等等,最后总数加在一起还是10
别想着这样分呗,你分成3块,第一份取i=1,第二份取j=1,第三份取sum=10,k = sum-(i+j)然后第二次就取,i=1 ,j=2,sum=10,k = sum-(i+j),懂意思吧追问
重点:按比例,这个比例不是确定的
追答不确定 你就随机 前 n-1个数呗,当然你随机的时候需要给后面的n个至少保留1,或者不保留吧都行,当然这种比例很不公平,如果你需要公平的话,可以参考二倍均值法
参考技术A 1、float a = 1.2f2、String s = String.valueOf(a)
3、String[] ss = s.split(".")
4、System.out.println("整数部分:"+ ss[0])
System.out.println("小数部分:"+ ss[1])
private String[] divide(double num)
//把一个浮点数强制类型转换为long型,既得到它的整数部分
long zheng = (long)num;
//浮点数减去部分,得到小数部分,小数部分乘以100后再取整得到两位小数
long xiao = Math.round((num - zheng) * 100);
return new String[]zheng + " ",String.valueOf(xiao);
}追问
你在说什么吗
Java有一个小数,如何去掉小数部分?
Java有一个小数,如何去掉小数部分?
1、Math.round(float f)对小数部分四舍五入
或者强值类型转换成int类型,直接去掉小数部分!
2、
3、向上取整:Math.ceil() //只要有小数都+1
向下取整:Math.floor() //不取小数
四舍五入:Math.round() //四舍五入
或者强值类型转换成int类型,直接去掉小数部分本回答被提问者和网友采纳 参考技术B Math.round(你的数);得到的就是去掉小数部分的数哈。。并且四舍五入了的哈。。 参考技术C 楼上的两个方法都对 你可以直接转换为int 这样就去掉了 参考技术D 假设你的数a=1.001
(int) a=1;
加我为满意答案吧
以上是关于java 按比例分配后得到小数,将小数取整,但不改变总数的主要内容,如果未能解决你的问题,请参考以下文章