Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/216.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何添加浮动,但将总计保持/包装在0..1范围内?_Java_Android - Fatal编程技术网

Java 如何添加浮动,但将总计保持/包装在0..1范围内?

Java 如何添加浮动,但将总计保持/包装在0..1范围内?,java,android,Java,Android,我正在几个alpha值上做一些动画,希望设置相对于参考值的值 obj1.alpha = refAlpha + 0.25f; obj2.alpha = refAlpha + 0.75f; 例如,如果refAlpha是0.5,那么我希望obj2.alpha是0.25,而不是1.25。 有什么数学函数可以做到这一点呢?mod操作符%将在包装方面起作用。(它既适用于浮点运算,也适用于整数运算) 不幸的是,java并没有完全实现数学定义的mod一% b返回范围 >,而不是(0,b)< /代码>。如果您减

我正在几个alpha值上做一些动画,希望设置相对于参考值的值

obj1.alpha = refAlpha + 0.25f;
obj2.alpha = refAlpha + 0.75f;
例如,如果refAlpha是0.5,那么我希望obj2.alpha是0.25,而不是1.25。
有什么数学函数可以做到这一点呢?

mod操作符
%
将在包装方面起作用。(它既适用于浮点运算,也适用于整数运算)

不幸的是,java并没有完全实现数学定义的mod<代码>一% b<代码>返回范围<<代码>(-b,b)< /> >,而不是<代码>(0,b)< /代码>。如果您减值,结果可能是否定的。如果这是您所担心的用例,请考虑创建帮助函数来处理它:

public static float mod(float a, float b){
    return ((a % b) + b) % b;
}

这将使结果在
[0,b)

你为什么要问?谷歌不起作用吗?与其投反对票,为什么不提供答案作为快速评论。我问的原因是我已经看了数学课,但没有看到任何东西,尽管肯定有。我可以检查自己的值是否大于1.0并进行调整,当然可以,但肯定会有方便我可以调用函数。不,谷歌不工作,这就是我问的原因。给我搜索词,然后找到答案。正如我刚才说的,我刚刚读了数学文档。现在有一个答案,我可以透露我不知道mod会在floats上工作。如果你不知道,那么从谷歌很难找到答案。给你azy一号:可能与
public static float mod(float a, float b){
    return ((a % b) + b) % b;
}