Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/271.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# 我怎样才能像funcrion那样在变量达到0时触发游戏?_C#_Unity3d - Fatal编程技术网

C# 我怎样才能像funcrion那样在变量达到0时触发游戏?

C# 我怎样才能像funcrion那样在变量达到0时触发游戏?,c#,unity3d,C#,Unity3d,我试着做一些类似的事情 public double number = 10000; public double decreasing = 10; public void Update() { number -= decreasing * Time.deltaTime; if (number == 0) { decreasing = 0; } } 但这不起作用。当它达到0时,如何使它停止递减?这是一个双精度浮点数,一种相当大

我试着做一些类似的事情

 public double number = 10000;
 public double decreasing = 10;

 public void Update()
 {
     number -= decreasing * Time.deltaTime;

     if (number == 0)
     {
         decreasing = 0;
     }
 }

但这不起作用。当它达到0时,如何使它停止递减?

这是一个双精度浮点数,一种相当大的浮点数形式。浮子以其不精确而闻名。像
number==0这样的精确匹配是千载难逢的。即使将其设置为某个值,也不能保证精确地为该值。这是浮点类型固有的、不可避免的属性:


要么从现在开始使用它,然后使用这是一个双精度浮点数,一种相当大的浮点数形式。浮子以其不精确而闻名。像
number==0这样的精确匹配是千载难逢的。即使将其设置为某个值,也不能保证精确地为该值。这是浮点类型固有的、不可避免的属性:


无论是从现在开始期待,还是在提问时使用,你都应该陈述预期的和实际的行为。它如何“不起作用”?减法后,
number
可能小于零?如果是,则条件应为
If(数字当数字达到0时,它将继续进行减法运算。我尝试使用Debug.Log,但当数字达到0时,它没有显示任何内容。是否确实在减法运算后,数字实际上变为
0
?如果它从
1
开始,然后我们减去
10
,请在必要时尝试将运算符更改为
作为一个问题,你应该说明预期的和实际的行为。它如何“不起作用”?减法后可能
number
小于零?如果是,条件应该是
If(数字当数字达到0时,它将继续进行减法运算。我尝试使用Debug.Log,但当数字达到0时,它没有显示任何内容。您确定减法后数字实际上变为
0
吗?如果它从
1
开始,然后我们减去
10
,请尝试将运算符改为
,谢谢对于建议,我使用了1000作为例子,但是我的数字应该能够存储至少10^15的值,所以我实际上不能使用int@RaduPîrvu 10^15很容易在长64位整数的范围内。事实上,它会上升到10^18。如果您需要更高的值,还有BigInt。谢谢您的建议,但我以1000为例,但是我的数字应该能够存储至少10^15的值,所以我实际上不能使用int@RaduPîrvu 10^15很容易在长64位整数的范围内。事实上,它可以达到10^18。如果您需要更高的值,还有BigInt。
if(number <= 0)
  number = 0;