float fillValue = health.currentHealth/health.maxHealth not giving decimal output 将health.currentHealth除以health.maxHealth所得的结果赋给float类型变量fillValue,但是结果并没有包含小数点。

11 浏览
0 Comments

float fillValue = health.currentHealth/health.maxHealth not giving decimal output 将health.currentHealth除以health.maxHealth所得的结果赋给float类型变量fillValue,但是结果并没有包含小数点。

在C#中进行除法运算时,会自动向下取整。看下面的例子:

double i;
i = 200 / 3;
Messagebox.Show(i.ToString());

这会显示一个包含"66"的消息框。实际上200 / 3是66.66666~。

有没有办法避免向下取整,保留一个类似于66.6666667的数值呢?

0
0 Comments

问题原因:200/3 是整数除法,结果会被截断为整数。

解决方法:尝试使用浮点数进行除法运算,可以使用以下几种方法:

- 使用浮点数进行除法运算:200.0 / 3.0

- 使用浮点数除以整数:200 / 3.0

- 使用整数除以浮点数:200.0 / 3

- 使用强制类型转换将整数转换为浮点数进行除法运算:(double) 200 / 3

- 使用强制类型转换将整数转换为浮点数进行除法运算:200 / (double) 3

不管使用哪种方法,都可以得到带有小数部分的除法结果。

0
0 Comments

问题出现的原因是代码中的除法操作使用的是整数除法,导致结果为整数而不是浮点数。解决方法是将除法操作中的其中一个操作数改为浮点数,使得整个除法操作成为浮点数除法。

具体来说,代码中的除法操作 200 / 3 是整数除法,它的结果会被截断为一个整数。要改为浮点数除法,可以将其中一个操作数改为浮点数。

修改方法是将除法操作 200 / 3 改为 200.0 / 3。这样,除法操作中的操作数之一(200.0)是浮点数,整个除法操作将会进行浮点数除法。

0
0 Comments

问题原因:在代码中,使用了整数除法操作符,导致结果被截断为整数。

解决方法:可以通过以下几种方式解决该问题:

1. 将其中一个操作数强制转换为double类型,以使用double除法操作符。示例:i = (double)200 / 3

2. 将其中一个操作数声明为double常量,以使用double除法操作符。示例:i = 200.0 / 3

3. 将其中一个操作数声明为double类型的常量,以使用double除法操作符。示例:i = 200d / 3

通过以上方法之一,即可解决float fillValue = health.currentHealth/health.maxHealth不返回小数输出的问题。

0