Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/317.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
C# 何时判断连续零星的浮点流是否与整数相交?_C#_Math_Floating Point_Integer - Fatal编程技术网

C# 何时判断连续零星的浮点流是否与整数相交?

C# 何时判断连续零星的浮点流是否与整数相交?,c#,math,floating-point,integer,C#,Math,Floating Point,Integer,假设在一个以可变帧速率更新的更新循环中,您收到一个连续的浮动流-通常稳定地增加,除非它改变方向并减少(也稳定地) 如何检测特定循环何时(准确地)命中或越过整数 (实现不必是特定于C的,但这正是我用来实现的……因此,如果有任何C方法可以提供帮助,那也太酷了!) 基本上,您如何使其更具性能: int floor0 = Mathf.FloorToInt(lastTH); int ceil0 = Mathf.CeilToInt(lastTH);

假设在一个以可变帧速率更新的更新循环中,您收到一个连续的浮动流-通常稳定地增加,除非它改变方向并减少(也稳定地)

如何检测特定循环何时(准确地)命中或越过整数

(实现不必是特定于C的,但这正是我用来实现的……因此,如果有任何C方法可以提供帮助,那也太酷了!)

基本上,您如何使其更具性能:

           int floor0 = Mathf.FloorToInt(lastTH);
            int ceil0 = Mathf.CeilToInt(lastTH);
            float delta = th - lastTH;
            if (delta > 0)
            {
                // increasing
                if (ceil0 > th) Hit();
            }
            else
            {
                // decreasing
                if (floor0 < th) Hit();
            }

lastTH = th;

intfloor0=Mathf.FloorToInt(lasth);
int ceil0=Mathf.ceiloint(lasth);
浮动增量=th-lasth;
如果(增量>0)
{
//增加
如果(ceil0>th)命中();
}
其他的
{
//减少
如果(地板0
一个特定的循环和一个特定的点?考虑到浮点模糊性,这个怎么样?(伪代码…)

var less\u found=false;
var geq_found=假;
while(你的循环){
...
如果(值<阈值)小于_found=真;
如果(值>=阈值)geq_found=true;
...
}
在循环结束时,检查标志


如果值是浮点数,那么我建议阈值也应该是浮点数。

如果流刚刚增加,x是上一个值,y是新值,那么当x 如果流刚刚减少,则存在一个小于x且大于或等于y的整数iff x>ceil(y)


无需确定方向,即可将其组合在一起;y处有一个整数(但x≠ y) 或者在x和y之间,如果xceil(y)。

粗略地说:-如果流是:0.245,1.12,5.00,0.2589,你想知道我们何时指向5=>整数吗?不,我的意思是当它穿过时,即使它本身没有达到5.00。所以在你们的数字中,我想知道当它达到0,1,2,3,4,5,4,3,2,1,0时——这只是对你们有些模糊的问题的一种可能的解释……你们如何确定阈值是什么?为什么流独立算法是不对称的?@ina:它不是不对称的。−天花板(y)=地板(−y) ,因此x>ceil(y)等于−x<楼层(−y) 。
var less_found = false;
var geq_found  = false;

while (your_loop) {
  ...
  if (value <  threshold) less_found = true;
  if (value >= threshold) geq_found  = true;
  ...
}