题目
JAVA1 类型转换
描述
设计一个方法,将一个小于2147483647的double类型变量以截断取整方式转化为int类型
输入描述:
随机double类型变量
输出描述:
转化后的int类型变量
示例:
输入:12.34 输出:12
输入:1.88 输出:1
分析:
1.需要编写一个方法。
2.方法需要把double类型变量变为int类型变量。
3.截断取整方式转化。
代码:
1.使用round函数(四舍五入函数)。
2.确定小数点后一位的值。
3.小数也分为负数和正数。
4.确定的值大于等于5,使用四舍五入比结果大1,减去1(负数+1).
import java.util.Scanner;
import static java.lang.Math.*;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
double d = scanner.nextDouble();
System.out.println(Main.typeConversion(d));
}
public static int typeConversion(double d){
int i;
double temp;
temp=d*10%10;
if(d>=0){
if(temp>=5){
i=(int)(round(d)-1);
}else {
i=(int)(round(d));
}
}else {
if(abs(temp)>=5){
i=(int)(round(d)+1);
}else {
i=(int)(round(d));
}
}
return i;
}
}
1.使用ceil函数(向上取整函数)。
2.确定该数是否有小数部分,没有小数部分按照负数一样处理。
3.有小数,且为正数,向上取整,结果要减去1。
import java.util.Scanner;
import static java.lang.Math.*;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
double d = scanner.nextDouble();
System.out.println(Main.typeConversion(d));
}
public static int typeConversion(double d){
int i;
double dd=d%1;
if(d>=0 && dd!=0){
i=(int)(ceil(d)-1);
}else{
i=(int)(ceil(d));
}
return i;
}
}
1.使用floor函数(向下取整函数)。
2.确定该数是否有小数部分,没有小数部分按照正数一样处理。
3.有小数,且为负数,向下取整,结果要+1。
import java.util.Scanner;
import static java.lang.Math.*;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
double d = scanner.nextDouble();
System.out.println(Main.typeConversion(d));
}
public static int typeConversion(double d){
int i;
double dd=d%1;
if(d<=0 && dd!=0){
i=(int)(floor(d)+1);
}else{
i=(int)(floor(d));
}
return i;
}
}
大佬代码:
double的范围比int大,所以是要强转,直接用(int)就行。
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
double d = scanner.nextDouble();
System.out.println(Main.typeConversion(d));
}
public static int typeConversion(double d){
return (int)d;
}
}
使用装箱和拆箱 来解题
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
double d = scanner.nextDouble();
System.out.println(Main.typeConversion(d));
}
public static int typeConversion(double d) {
Double e = new Double(d);
int i = e.intValue();
return i;
}
}
标签:类型转换,题目,Scanner,int,double,System,JAVA1,static,public
From: https://blog.csdn.net/m0_57463864/article/details/139650955