类型转换的问题 (100分)

  • 主题发起人 主题发起人 xueblueice
  • 开始时间 开始时间
X

xueblueice

Unregistered / Unconfirmed
GUEST, unregistred user!
类型转换的问题
1、
int a=10;
int b=20;
float c=a/b;
system.out.println(c);

结果是0.0,怎么才能输出0.5呢?
2、有什么方法
float a=10;
float b=21;
float c=a/b;
system.out.println(c);

结果是0.47619048,怎么才能只输出0.47,也就是怎么控制小数位数
 
Format控制输出,具体察看帮助!
 
1.floatToStrF(c,ffFixed,10,1);
2.floatToStrF(c,ffFixed,10,2);
 
1.round
2.format
 
FloatToStr(C)
 
formatfloat('0.00',f)
 
1.整数和整数进行 / 运算,结果只能是整数(舍去了小数)!
如下,可得到0.5 :
class Aa
{
public static void main(String args[])
{
float a=10f;
//改为float
float b=20f;
//改为float
float c=a/b;
System.out.println(c);
}
}
2.用Format可以。
当然下面的笨办法,是只求结果的~ [:D][:D]
class Aa //extends Frame {
{
public static void main(String args[])
{
float a=10;
float b=21;
float c=a/b;
System.out.println(Float.toString(c).substring(0,4));
//在此控制小数的位数
}
}
 
还有一点不清楚,怎么进行4舍5入啊!!多谢!!
 
四舍五入,
加0.004,小数点后的00的位数根据你要保留的位数定。
 
long c = Math.round(a/b) ;
 
RoundTo也行。具体看帮助
 
对了,round是返回的int的啊。会返回real的吗?
 
这里有专门用于取得 四舍五入值的函数,也许有用
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1049035
 
大家看清楚人家问的java,不是delphi
1、
int a=10;
int b=20;
float c=float(a)/b;
就是0.5了(注意是float(a)/b 而不是float(a/b))
2、四舍五入:
比如2位:
java.lang.Math.round(x*100)/100.0
或者:
long(x*100+0.5)/100.0
 
看Math类中的方法。
 
很简单嘛
int a=10;
int b=20;
float c = a*1.0/b;
System.out.println(c);
System.out.println(java.lang.Math.rint(c*100)/100);
 
java.lang.Math.round()方法实现:
2.34--2
2.61--3
java.lang.Math.ceil()方法实现:
2.121--3
2.567--3
如果知道确切的数字,也可以使用String.subString么。
 
问题解决了,散分吧[:D]
 
后退
顶部