我有验证码
int twelve = 12;
int five = 5;
float y = (float)twelve / 5;
var e = (float)((float)twelve / (float)five) == y; // true
var f = ((float)twelve / (float)five) == y; // false
var g = ((float)twelve / (float)five) == 2.4; // true
var h = ((float)twelve / (float)five) == 2.4F; // false
var i = ((float)12 / (float)5) == 2.4F; // true
我不明白为什么f
和h
是false
。
有人可以解释这里到底发生了什么吗?
相同的Java代码似乎更可预测
int twelve = 12;
int five = 5;
float y = (float)twelve / 5;
boolean e = (float)((float)twelve / (float)five) == y; // true
boolean f = ((float)twelve / (float)five) == y; // true
boolean g = ((float)twelve / (float)five) == 2.4; // false
boolean h = ((float)twelve / (float)five) == 2.4F; // true
boolean i = ((float)12 / (float)5) == 2.4F; // true