个人技术分享

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;
    }
}