对于某些数字,java从double转换为int

时间:2015-10-13 04:23:42

标签: java

import java.util.Scanner;
public class Test1C
{
    public static void main(String[] args)
    {
        Scanner reader = new Scanner(System.in);
        System.out.print("Enter an integer between 1 and 50: ");

        double quo;
        int num = reader.nextInt();

        for(double a = 1; a <= num; a++)
        {
            quo = (num / a);
            System.out.println(quo);            
        }
    }
}

这是我目前根据输入的数字来评估商数列表的代码。现在我脑子里唯一关注的是如何将当前小数的整数转换成整数。但是,由此代码打印的双打(例如:1.333)很好。我无法弄清楚如何将整数小数(例如:12.0)转换为整数整数。有人能帮助我吗?

3 个答案:

答案 0 :(得分:1)

你可以这样做。

Double d = new Double(1.25);
int i = d.intValue();
System.out.println("The integer value is :"+ i);

答案 1 :(得分:1)

是的,你可以:

String s = "1.333";
double d = Double.parseDouble(s);
int i = (int) d;

String s="1.333";
int i= new Double(s).intValue();

答案 2 :(得分:0)

没有通用的方法来检测double是否真的是一个整数,并且double和double或int的比较通常必须非常谨慎地处理,但对于程序中的数字范围(以及上限)可以大大提高),这将按你的意愿工作:

    for(double a = 1; a <= num; a++)      {
        double quo = num/a;
        int iquo  = (int)quo;
        if( iquo == quo ){
           System.out.println(iquo);
        } else {
           System.out.println(quo);
        }
    }