我是转换课程的新手。我试图使用方法从一个变量转换为另一个变量。目前,我不确定如何将double转换为int然后将其舍入以及如何将boolean
转换为int
,以便0 = false
和1 = true
。有人可以帮忙吗?
我的代码:
public class MethodsOverloading {
public int convert (String s) {
System.out.println("This is a string "+ s); // Hoping to display 100 as a string
return 0;
}
public int convert(double d) {
System.out.println("This is an int "+ d); // Want to display 99.6 rounded to 100 (so its an int)
return 0;
}
public int convert (boolean b) {
System.out.println("This is an int "+(b)); // hoping to return as an int with 0 = false and 1 = true
return 0;
}
public static void main(String[] args) {
MethodsOverloading overload = new MethodsOverloading();
overload.convert("100");
overload.convert(99.6);
overload.convert(true);
}
}
答案 0 :(得分:1)
使用
System.out.println("This is an int "+ Math.round(d/100.0)*100); // Want to display 99.6 rounded to 100 (so its an int)
表示double方法,
System.out.println("This is an int "+(b?1:0)); // hoping to return as an int with 0 = false and 1 = true
用于int方法。
答案 1 :(得分:1)
布尔:
if ( trueExpression ){ return 1;}
else { return 0;}
在下一行中,你自相矛盾:
System.out.println("This is an int "+ d); // Want to display 99.6 rounded to 100 (
99.6不是int。 100是。所以,如果你想显示99.6,你需要
"this is a double: " + (double)d
通知jvm它是双重的,它应该可以工作。
答案 2 :(得分:0)
您可以使用此方法从String
获取整数:
Integer.parseInt(s);
要从double
获取整数,您可以使用ceil
中的Math
方法,并将其结果转换为整数:
(int) Math.ceil(d)
而且,要将boolean
转换为整数,您可以使用这个简单的逻辑:
if (b) // this is equivalent to `if (b == true)`
return 1;
else
return 0;
请注意,建议使用if (b)
代替if (b == true)
。
答案 3 :(得分:0)
你的意思是这样的:
public int convert (boolean b) {
// conversion: 1 - true, 0 - false
int result = b ? 1 : 0;
// debug information printing out
System.out.println("This is an boolean " + result);
// Do you really want to return 0 in any case?
// Returning conversion result looks far better
return result;
}