我需要限制溢出值。 我實現了這個如下:C#值溢出限制
public static sbyte LimitValueToSByte(this int val)
{
if (val > sbyte.MaxValue) return sbyte.MaxValue;
if (val < sbyte.MinValue) return sbyte.MinValue;
return (sbyte)val;
}
是否有一個更優雅的方式?
這在時間關鍵的系統代碼,因此性能是重要的。
簽名零不應該成爲一個問題。 – SLaks
@Slaks不帶整數。但是'(-0.0).Clamp(0,1)'返回'-0',這在所有情況下都可能不是所希望的。 – CodesInChaos
我知道有符號的零,但它們在這裏不會引起問題。在.Net中,「-0.0」與「0.0」無法區分。 – SLaks