System.NumberFormatter.RoundBits C# (CSharp) Méthode

RoundBits() private méthode

private RoundBits ( int shift ) : bool
shift int
Résultat bool
		private bool RoundBits (int shift)
		{
			if (shift <= 0)
				return false;

			if (shift > _digitsLen) {
				_digitsLen = 0;
				_decPointPos = 1;
				_val1 = _val2 = _val3 = _val4 = 0;
				_positive = true;
				return false;
			}
			shift += _offset;
			_digitsLen += _offset;
			while (shift > 8) {
				_val1 = _val2;
				_val2 = _val3;
				_val3 = _val4;
				_val4 = 0;
				_digitsLen -= 8;
				shift -= 8;
			}
			shift = (shift - 1) << 2;
			uint v = _val1 >> shift;
			uint rem16 = v & 0xf;
			_val1 = (v ^ rem16) << shift;
			bool res = false;
			if (rem16 >= 0x5) {
				_val1 |= 0x99999999 >> (28 - shift);
				AddOneToDecHex ();
				int newlen = DecHexLen ();
				res = newlen != _digitsLen;
				_decPointPos = _decPointPos + newlen - _digitsLen;
				_digitsLen = newlen;
			}
			RemoveTrailingZeros ();
			return res;
		}