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;