# Verificați limitele schemei numerice în loc de a lua forța completă

> Verificați Int, SmallInt, TinyInt și Number2 cu scheme compacte native, inclusiv valori fracționale, intrări zero și off-range.

Framework: total5
Product: Total.js 5 (total5@0.0.19)
Language: ro
Content-SHA256: fe1a39843136f6bcb1dd74a8f3cfe2cd6e2afd99ae5942cde2b6ae1955e13a65
Snapshot: c0700e321579725c5cf4f5ace1ad7d2866d1b4f93c24a63c0b41b6b7998e976c
Sources: total5-installed@total5@0.0.19
Review: not-recorded

În `total5@0.0.19`, toate tipurile numerice compacte intră în validatorul numărului nativ. **`Int` nu garantează un întreg**: `7.9` este păstrat. `Number2` păstrează, de asemenea, această fracție; nu se interpretează numele său ca rotund la două locuri decimale.

`TinyInt` acceptă valori de la 0 la 255. `SmallInt` acceptă de la -32767 la 32767; în special, -32768 este respins în această versiune. Aceste verificări de subtip impun limite, dar nu cer valori întregi: `TinyInt` acceptă `1.5`. Aplică o verificare explicită cu `Number.isInteger()` pentru identificatori, contoare sau cantități care trebuie să fie întregi. Aceste observații descriu această versiune și valorile testate, nu semantica coloanelor SQL.

```js controllers/numbers.js
var schema = NEWSCHEMA('NumericBoundaries', '*integer:Int,*small:SmallInt,*tiny:TinyInt,*decimal:Number2');

exports.install = function() {
	ROUTE('POST /numbers/ @json', numbers);
};

function numbers($) {
	var result = schema.transform($.body);
	if (result.error) {
		$.response.status = 400;
		$.json({ error: 'invalid numeric input' });
		return;
	}
	$.json(result.response);
}
```
