注册 登录
编程论坛 JAVA论坛

想用String.format格式化字符串,不知道为什么出现了异常

邹特强 发布于 2017-03-22 22:48, 1566 次点击
public class Primitive {

public static void main(String[] args)
{
   int a=(int)(Math.random()*10);//静态的Math方法,直接调用,Math.random()本身返回的是双精度数
   int b=Math.abs(-100);//abs有覆盖版本,传入整型参数时会返回整型,传入双精度浮点数会返回double,当想在不同primitive数据类型运用时要遵循大盒子装小盒子
   double c=Math.abs(-1000.3);
   int d=Math.round(-24.8f);//round方法是将float或double四舍五入,返回整型会则会长整型
   int e=Math.min(b, (int)c);
   double f=Math.max(999.9, 999.8);
   String string=String.format("%d,%d,%lf,%d,%d,%lf",a,b,c,d,e,f);
   System.out.println(string);
   System.out.println(a+" "+b+" "+c+" "+d+" "+e+" "+f);
}

}
3 回复
#2
孤独与烈酒2017-03-23 09:09
%1f:百分号后面应该是1不是字母L,你可能这儿写错了
#3
邹特强2017-03-23 13:10
回复 2楼 孤独与烈酒
哈哈,中了c语言的毒了,你说的对,谢了。
但为什么用%lf没有错误啊,l是指L,它表示啥意思?
#4
孤独与烈酒2017-03-23 13:23
回复 3楼 邹特强
这个我不是很清楚了,我也只是把你的代码拿过去试了试,发现是那块的问题,你可以再问问其他人
1