我有一个浮点数,可以是正数或负数的任何值。
如果float小于1或大于-1而不是0,则需要将其舍入为1或-1。
我有一个我做过的功能,但是我觉得有一种优雅的内联方式可以做到这一点,但我不能想出一个。
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static float NormalizeScalar(float input)
{
if ((input > -1) && (input < 1))
return (input == 0) ? 0 : (input < 0) ? -1 : 1;
return input;
}
有什么建议吗?
答案 0 :(得分:3)
使用Math.Sign(input)
。
如果您输入的是0.78 - &gt;返回1.
如果它是0 - &gt;返回0。
如果它是-0.78 - &gt;返回-1。