float fillValue = health.currentHealth/health.maxHealth not giving decimal output 将health.currentHealth除以health.maxHealth所得的结果赋给float类型变量fillValue,但是结果并没有包含小数点。
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的数值呢?
问题原因:在代码中,使用了整数除法操作符,导致结果被截断为整数。
解决方法:可以通过以下几种方式解决该问题:
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
不返回小数输出的问题。