我有一个修改输入的库(将输入与一个或多个存储变量相加或相乘)。这些变量存储为浮点数。通常,输入也是一个浮点数,但在某些情况下它是一个整数。我担心这个的准确性。
float GetValue(float input)
{
foreach (float modifier in various_data_sources)
{
if (isFactor)
input = input * modifier;
else
input = input + modifier;
}
return input;
}
void MainLogic()
{
int defaultValue = 3;
// If the modifier is 2 (add), I expect the final modified int to be 5:
DoSomeIntThing((int) GetValue(defaultValue));
}
我能做些什么来让这更安全吗?值的修改需要是动态的,将整数运算和浮点运算的修改分开会是一团糟。这是否像我认为的那样不安全,还是像这样的操作(int)(2.0f+(float)3)
总是会产生预期的结果?