stringValue property

  1. @override
String get stringValue
override

Canonical string representation of this item.

Implementation

@override
String get stringValue {
  if (value.isNaN) return 'NaN';
  if (value == double.infinity) return 'INF';
  if (value == double.negativeInfinity) return '-INF';
  if (value == 0.0) return value.isNegative ? '-0' : '0';
  var d = value;
  if (type == xsFloat) {
    for (var p = 1; p <= 9; p++) {
      final candidate = double.parse(value.toStringAsPrecision(p));
      if (roundToFloat(candidate) == value) {
        d = candidate;
        break;
      }
    }
  }
  final abs = d.abs();
  if (abs >= 1e-6 && abs < 1e6) {
    final s = d.toString();
    return s.endsWith('.0') ? s.substring(0, s.length - 2) : s;
  }
  return _toXPathScientific(d);
}