double between(num low, num upper) { return min(upper.toDouble(), max(low.toDouble(), this.toDouble())); }