浮点Java浮点到双上下界?
这里的大多数人都知道,double->;浮动会导致精度下降。这意味着,多个双精度值可以映射到同一个浮点值。 但我该怎么做呢?给定一个正常(我不关心极端情况)的浮点值,如何找到仍然映射到同一个浮点值的双精度的上限和下限值
或者,用代码说话:
function boolean testInterval(float lowF, float highF, double queryD) {
float queryF = (float) queryD;
return (lowF <= queryF) && (queryF <= highF);
}
及
function boolean testInterval(float lowF, float highF, double queryD) {
double lowD = (double) lowF;
double highD = (double) highF;
return (lowD <= queryD) && (queryD <= highD);
}
不要总是给出相同的结果。我正在寻找两个函数float->;double使第二个函数在第一个函数返回相同的结果
这可能行得通,但看起来像是黑客攻击,对我来说不是正确的解决方案
function boolean testIntervalHack(float lowF, float highF, double queryD) {
double lowD = (double) lowF - Float.MIN_VALUE;
double highD = (double) highF + Float.MIN_VALUE;
return (lowD <= queryD) && (queryD <= highD);
}
共 (0) 个答案