作者:卢启红 | 来源:互联网 | 2024-11-03 08:24
在Java编程中,若需实现两个整数(例如2和3)相除并保留两位小数的结果,可以通过精确计算方法来达到预期效果。具体而言,可以利用BigDecimal类进行高精度运算,确保2除以3的结果准确显示为0.66。此外,还可以通过格式化输出来控制小数位数,确保最终结果符合要求。
各位大虾:
我向问个java的初始问题:现我有两个整数,如2,3.
我想让他们相除后等于保留两位得小数,如 2/3 结果为 0.66。
我该如何做?
谢谢!
19 个解决方案
指得是float的intBitsToFloat(int myint)嘛?
能详细些吗?
HELP?
我怎么能把double OR float 的小数位给取到呢?怎么保留2位小数?
剛寫的不知道是否正確
試一試吧
public String zhh(double dou)
{
try
{
aaa=String.valueOf(dou);
}
catch (Exception ex1)
{
aaa="0.00";
}
int bbb=aaa.indexOf('.');
if(bbb==-1)
{
aaa=aaa+".00";
}
if(aaa.length()-bbb==1 && bbb!=-1)
{
aaa=aaa+"00";
}
if(aaa.length()-bbb==2 && bbb!=-1)
{
aaa=aaa+"0";
}
aaa=aaa.substring(0,aaa.indexOf('.')+3);
return aaa;
}
new java.math.BigDecimal(Float).setScale(2,5)就可以实现,其中的2表示保留两位小数,其中的5表示四舍五入
我定义了一个float f,中间对其进行了计算。
当我想用int i=f.intValue()把f转换成int时,确发生了错误。不知道为什么。
double x=2/3;
x=((int)(x*100))/100
樓上的經典
不過好像要
double x=(double)2/3;
import java.util.* ;
import java.text.* ;
public class Hashtest {
public static void main(String[] args) {
DecimalFormat oFormat1 = new DecimalFormat("##.##") ;
DecimalFormat oFormat2 = new DecimalFormat("##.##%") ;
double s = (double)2/3 ;
System.out.println(s);
String strResult1 = oFormat1.format(s);
System.out.println(strResult1);
strResult1 = oFormat2.format(s);
System.out.println(strResult1);
}
}
供参考
/**
* 保留小数
* int num -小数位数
* double value 数字
*/
private double changeDecimal(int fraction,double value){
BigDecimal b= new BigDecimal(value);
double v=b.setScale(fraction, BigDecimal.ROUND_HALF_UP).doubleValue();// 表明四舍五入,保留两位小数
return v;
}
现在是四舍五入的
把BigDecimal.ROUND_HALF_UP改一下,就是不进位了。
你做个参考吧
DecimalFormat df = new DecimalFormat("#####0.00");
df.format(变量);
haha
乘100除了再除100,这种自己编写"API"的技巧,一定要随时随地地加以运用,因为:
API实在太多,谁也不愿意去查找帮助,查找API,常用的API都是自己写算法解决的。写算法需要的时间,比查找API所需要的时间少多了。
我以前做一个项目和6个人合作用了半年,现在我一个人20天就可以了,虽然已经超级熟练,但是我对API一点都不熟,我有了异常的自己写API的能力了