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); }
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); }
public SampleRange(DecimalValue lower, DecimalValue?upper) { Lower = lower; Upper = upper; }