0
int a = 4;
int b = 3;
int c = 10;
int d1 =(int) (double)(a*b)/c;
double d2 =(double)(a*b)/c;
System.out.println("d1: " + d1);
System.out.println("d2: " + d2);

Result: d1: 1 and d2: 1.2

如何提取/删除 1.2 的 1.0。所以我得到 d2 = 0.2 和 d1 = 1 当 a = 9 -> (9*3)/10 时。d2 = 0.7 和 d1 = 2 当 a = 6 -> (6*3)/10 时。d2 = 0.8 和 d1 = 1

非常感谢。

4

3 回答 3

2
int a = 4;
int b = 3;
int c = 10;
// Store the original value.
double original = (double)(a*b)/c;
int d1 = (int)(original);
// Get the difference between the original value and the floored one.
double d2 = original - d1;
System.out.println("d1: " + d1);
System.out.println("d2: " + d2);
于 2012-08-24T10:59:36.610 回答
1

只需从浮点值中减去整数部分:

double d = (double) (a*b)/c;
int intPart = (int) d;
double fracPart = d - intPart;
于 2012-08-24T11:00:55.090 回答
0

尝试这个

int a = 9;
int b = 3;
int c = 10;

int d1 =(int) (double)(a*b)/c;
double d2 =(double)((a*b)%c)/c;
System.out.println("d1: " + d1);
System.out.println("d2: " + d2);
于 2012-08-24T11:33:06.883 回答