java - 我正在尝试在 java 中创建一个 Clamp 方法

标签 java clamp

嘿,我正在尝试使用最小毫秒延迟、最大毫秒延迟和一些其他计算来编写随机延迟。为此,我需要限制一些整数和一个长整数。下面是一个我称为 MathUtil 的类,用于尝试编写 Clamp 代码。

public static long clamp(long delayPreClamp, int min, int max) {
    return 90;
}

您可以在下面找到它正在使用的数字:

double deviation = 22;
                    double mean = 90;
                    int min = 43;
                    int max = 198;
                    Random r = new Random();
                    double randGauss = (r.nextGaussian() * deviation);
                    long delayPreClamp = Math.round(randGauss + mean);
                    long delay = (long) MathUtil.clamp(delayPreClamp, min, max);

我的问题是,在第一个提到的代码中,我只能返回 min、max、delayPreClamp 或数字。我需要它来创建一个新的数字作为延迟。

最佳答案

Clamp

public static long clamp(long delayPreClamp, int min, int max) {
    // v = delayPreClamp
    // if v < min, returns the greater between min and v, thus min
    // if v > max, returns the greater between min and max, thus max
    // if v is between min and max, returns the greater between min and v, thus v
    return Math.max(min, Math.min(delayPreclamp, max));
}

关于java - 我正在尝试在 java 中创建一个 Clamp 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44436118/

相关文章:

java - 接口(interface) Enum 的静态方法

java - 泛型类类型中的参数化方法

java - 如何将对象从主线程传递到java中的另一个线程

STL - AVX2 相当于 std::clamp

raku - Raku(即 Perl6)中是否有范围/Num 等的 'clamp' 方法/子?

java - 无弹窗的安卓语音识别App

java - 如何使用此代码对相同的值进行排序?

c++ - 将 vector 限制在最小值和最大值?

javascript - 如何在 Cesium SandcaSTLe 中将 GeoJSON 数据格式固定到地形?