Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8047731 | 9 | Robert Field | P4 | Closed | Fixed | b22 |
JDK-8064035 | 8u45 | Robert Field | P4 | Resolved | Fixed | b01 |
JDK-8070255 | emb-8u47 | Robert Field | P4 | Resolved | Fixed | team |
The result of execution of floating point expression invoked in the lambda code block is different:
2.1552676198089365E-308
2.155267619808936E-308
strictfp
public class type04404 {
public static void main(String args[]) {
clone(() -> {
double x = Double.longBitsToDouble(0x1e7ee00000000000L);
double y = Double.longBitsToDouble(0x2180101010101010L);
double z = x * y;
System.out.println(z);
});
{
double x = Double.longBitsToDouble(0x1e7ee00000000000L);
double y = Double.longBitsToDouble(0x2180101010101010L);
double z = x * y;
System.out.println(z);
}
}
private static void clone(Face arg) {
arg.run();
}
private interface Face {
void run();
}
}
2.1552676198089365E-308
2.155267619808936E-308
strictfp
public class type04404 {
public static void main(String args[]) {
clone(() -> {
double x = Double.longBitsToDouble(0x1e7ee00000000000L);
double y = Double.longBitsToDouble(0x2180101010101010L);
double z = x * y;
System.out.println(z);
});
{
double x = Double.longBitsToDouble(0x1e7ee00000000000L);
double y = Double.longBitsToDouble(0x2180101010101010L);
double z = x * y;
System.out.println(z);
}
}
private static void clone(Face arg) {
arg.run();
}
private interface Face {
void run();
}
}
- backported by
-
JDK-8064035 Different results of floating point multiplication for lambda code block
- Resolved
-
JDK-8070255 Different results of floating point multiplication for lambda code block
- Resolved
-
JDK-8047731 Different results of floating point multiplication for lambda code block
- Closed