黑马程序员技术交流社区
标题:
急急急!三元运算符的问题
[打印本页]
作者:
MGC
时间:
2014-7-31 09:20
标题:
急急急!三元运算符的问题
saveTwo(12.3456,3,true);//12.34
public static void saveTwo(double d,int scale,boolean isRound)
{
double base = Math.pow(10,scale);
double num = isRound?Math.round(d*base)/base:((int)(d*base))/base;
System.out.println("num="+num);
这个三元运算符,他的返回值是如何确定的?
double num = isRound?Math.round(d*base)/base:((int)(d*base))/base这个三元运算表示看不明白。。。
作者:
sunny~
时间:
2014-7-31 10:20
看不懂,代码有点乱
作者:
hejinzhong
时间:
2014-7-31 11:23
中间的笑脸是:吗?
作者:
格子、
时间:
2014-7-31 11:31
三元运算符的正确格式是: 条件?返回值1:返回值2
举个简单例子:
int x = 5;
int y = x>5?1:2;
复制代码
返回值结果为2,因为x>5为假也就是false,所以返回值为2
这个三元运算符可以和if相互转化!
作者:
练习题
时间:
2014-7-31 11:34
isRound判断这个值如果为true
Math.round(d*base)/base返回这个计算出来的值
(int)(d*base))/base false返回这个计算出来的值
返回double
作者:
liqi
时间:
2014-7-31 11:43
笑脸应该是:吧
条件1 Math.round(d*base)/base 先运算 Math.round(d*base)这个是调用Math类中的round()方法,返回最接近参数的 long或int,, 然后用这个返回值参与运算 即 返回值/base
条件2 (int)(d*base))/base 先把(d*base))强转为int类型 然后用强转后的数参与运算 强转后数/base
然后看怎样调用该函数 saveTwo(double d,int scale,boolean isRound),调用时传递的第三个参数为真,则返回条件1的结果
如果参数为假,则返回条件2的结果
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2