如何在Java中将十进制75.95转换为7595?

如何在Java中将十进制75.95转换为7595?,java,converter,Java,Converter,我有一个程序,需要将double 75.95转换为普通整数7595。如何编写实际的程序 我的代码是: class test5 { public static void main(String args[]) { double d = 75.95; System.out.println("Price before converting = "+d); int i = (int)d; System.out.println("(float

我有一个程序,需要将
double 75.95
转换为普通整数
7595
。如何编写实际的程序

我的代码是:

class test5 {
    public static void main(String args[]) {
       double d = 75.95;
       System.out.println("Price before converting = "+d);
       int i = (int)d;
       System.out.println("(float)d = "+i);
    }
}

为什么乘以100不起作用,有什么特别的原因吗

class test5 {
    public static void main(String args[]) { 
        double d = 75.95;
        System.out.println("Price before converting = "+d);
        long i = Math.round(d * 100);
        System.out.println("(float)d = "+i);
    }
}

你必须小心舍入误差。请参阅:

现在,我的代码是这样的,并且可以正常工作:)谢谢大家:)


您可以乘以常数100(如果只有两个小数点,则始终为两个小数点)。如果有更多,您可以使用
String.valueOf(double)
并删除“.”并调用
double
a
double
(而不是
float
)。差不多

double d = 75.95;
// int val = (int) (d * 100); // <-- or this.
String str = String.valueOf(d).replace(".", "");
int val = Integer.valueOf(str);
System.out.printf("(double)%f = (int)%d%n", d, val);

你想用75.9做什么?
(int)(d*100)
?我需要将75.95直接转换成7595。我的教科书问题是:编写一个程序,读取十进制形式(如75.95)的项目价格,并以paise(如7595 paise)打印输出…嘿,谢谢,我得到了答案:)这将丢失小数点后的值。。。。也就是说,对于75.95,它将提供7500作为输出。。。这是不正确的。。。请检查您的代码…
Math.round
返回一个
long
;)
double d = 75.95;
// int val = (int) (d * 100); // <-- or this.
String str = String.valueOf(d).replace(".", "");
int val = Integer.valueOf(str);
System.out.printf("(double)%f = (int)%d%n", d, val);
(double)75.950000 = (int)7595