Example #1
0
        private bool TryParseValue(out DecimalValue val)
        {
            var startPos = _pos;

            while (TryPeekCharSpan(out var span) &&
                   span.IsAsciiDigit())
            {
                _pos += 1;
            }

            val = new DecimalValue(_input.Range(startPos, _pos));
            return(startPos != _pos);
        }
Example #2
0
        private bool TrySampleValue(out DecimalValue?value)
        {
            var x = new StringBuilder();

            if (!TryParseValueAsStr(out var preDot))
            {
                value = null;
                return(false);
            }

            x.Append(preDot);
            if (TryConsume('.'))
            {
                if (!TryParseValueAsStr(out var postDot))
                {
                    value = null;
                    return(false);
                }

                x.Append('.');
                x.Append(postDot);
            }

            if (!TryConsumeExp(x))
            {
                value = null;
                return(false);
            }

            var number = x.ToString();

            if (number.Contains('e'))
            {
                number = Double.Parse(number).ToString(CultureInfo.InvariantCulture);
            }

            value = new DecimalValue(number);
            return(true);
        }
Example #3
0
 public SampleRange(DecimalValue lower, DecimalValue?upper)
 {
     Lower = lower;
     Upper = upper;
 }