long类型的除法运算怎么算?

hnnxzhoujia 2008-09-17 01:53:33
比如 long a = 5; long b = 10;

那么我想求 a/a+b 的百分比结果,精确到0.00%.请教各位 该如何运算?
...全文
10025 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
mayuanfei 2008-09-17
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 bao110908 的回复:]
Java codeimport java.text.DecimalFormat;


public class Test01 {

public static void main(String[] args) {
long a = 5;
long b = 10;
double percent = (double)a / (a + b);
DecimalFormat format = new DecimalFormat("0.00%");
String result = format.format(percent);
System.out.println(result);
}
}



需要将除号两端的任何一个数转为…
[/Quote]
haodouzhe123x 2008-09-17
  • 打赏
  • 举报
回复
楼上各位已经讲解的很详细了!我就不多说了!
Dragon_sxw 2008-09-17
  • 打赏
  • 举报
回复
import java.math.*;

class LongTest{
public static void main(String []args){
long a = 5;
long b = 10;

BigDecimal x = BigDecimal.valueOf(a + b);
BigDecimal d = BigDecimal.valueOf(a).divide(x, new MathContext(2));

System.out.println("a / (a + b) = " + d);


}
}
老紫竹 2008-09-17
  • 打赏
  • 举报
回复
直接除法就行了,显示的时候规范化一下。

paullbm 2008-09-17
  • 打赏
  • 举报
回复
a/a+b和 a/(a+b)是两回事!

long a=5;
long b=10;

String str=new String(a*1.0/(a+b));
str=str.subString(0,str.indexOf(".")+2);

double c=Double.valueOf(str);
  • 打赏
  • 举报
回复
import java.text.DecimalFormat;


public class Test01 {

public static void main(String[] args) {
long a = 5;
long b = 10;
double percent = (double)a / (a + b);
DecimalFormat format = new DecimalFormat("0.00%");
String result = format.format(percent);
System.out.println(result);
}
}


需要将除号两端的任何一个数转为 float 或者是 double 才能计算出小数位数,
否则的话整数类型与整数类型计算得出的结果还是整数类型,直接用 long/long
或者 int/int 的话,得出的结果是数学值的舍尾取整。

而转成 float 或 double 就不一样了,任何数与 float 和 double 进行计算时
会自动地进行类型提升,即将另外一个 long 数据提升到 double 类型再进行计
算的。

写成这样也是一样的 a / (double)(a + b)

62,612

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧