> For the complete documentation index, see [llms.txt](https://structure.js.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://structure.js.org/validation/number-validations.md).

# Number validations

* `required`: can't be undefined (default: `false`)
* `equal`: **\*** equal to passed value
* `integer`: must be an integer (default: `false`)
* `precision`: maximum number of decimal places
* `positive`: must be positive (default: `false`)
* `negative`: must be negative (default: `false`)
* `multiple`: must be a multiple of the passed value
* `min`: **\*\*** minimum valid value (works like the `>=` operator)
* `greater`: **\*\*** must be greater than passed value (works like the `>` operator)
* `max`: **\*\*** maximum valid value (works like the `<=` operator)
* `less`: **\*\*** must be smaller than passed value (works like the `<` operator)
* `nullable`: accepts null (default: `false`)

```javascript
const Pool = attributes({
  depth: {
    type: Number,
    positive: true
  },
  width: {
    type: Number,
    min: { attr: 'depth' }
  },
  length: {
    type: Number,
    greater: { attr: 'width' }
  },
  capacity: {
    type: Number,
    nullable: true
  }
})(class Pool {
  getVolume() {
    return this.depth * this.width * this.length;
  }
});
```
