验证带小数的值是否在定义的范围内的最佳方法是什么

时间:2017-12-07 15:58:55

标签: java decision-tree design-decisions

我有一个定义了阈值的文件,这些阈值用于帮助做出决定。

值如下所示:

"thresholds":[
    { "min": 0.0, "max": 0.25, "text": "VERY UNLIKELY" },
    { "min": 0.26, "max": 0.50, "text": "UNLIKELY" }
    { "min": 0.51, "max": 0.75, "text": "LIKELY" }
    { "min": 0.76, "max": 1.0, "text": "VERY LIKELY" }
]

条件:

for (Threshold threshold : thresholds) {
    if ((threshold.getMin() <= predictionValue) &&
        (predictionValue <= threshold.getMax())) {
            return threshold.getText();
    }
}

如果要检查的值类似于0.2500000001,则它介于0.25和0.26之间。所以我问,在没有空隙的情况下确定某个值是否在某个范围内的最佳方法是什么?

我应该为精度添加参数,并在min&amp ;;上应用此精度。最大值?我不想要使用0.259999999等值来配置文件。

1 个答案:

答案 0 :(得分:1)

您最终会使用此灰色区域,因为您要声明具有2个值的边界。这不起作用。我会告诉你它是如何工作的:

你应该做什么:

"thresholds":[
    { "max": 0.25, "text": "VERY UNLIKELY" },
    { "max": 0.50, "text": "UNLIKELY" }
    { "max": 0.75, "text": "LIKELY" }
    { "max": 1.0, "text": "VERY LIKELY" }
]

条件:

for (Threshold threshold : thresholds) {
    if (predictionValue < threshold.getMax()) {
            return threshold.getText();
    }
}

如您所见,一个值足以定义边界。