+ return "%s(%r)" % (type(self).__name__, self.string)
+
+class INumberDef(NumberDef):
+ """A NumberDef, but returns rounded integer results."""
+ def __init__(self, expr):
+ super(INumberDef, self).__init__(expr)
+ if self._value is not None:
+ self._value = int(round(self._value))
+
+ def __call__(self, params, rank):
+ if self._value is not None:
+ return self._value
+ return int(round(super(INumberDef, self).__call__(params, rank)))