# Ελέγξτε τα όρια του αριθμικού σχήματος αντί να αναλάβετε πλήρη καταναγκασμό

> Ελέγξτε το Int, το SmallInt, το TinyInt και το Number2 με εγγενείς συμπαγές σχήματα, συμπεριλαμβανομένων των παραγόμενων τιμών, μηδέν και εκτός κλάσης εισαγωγών.

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

Σε `total5@0.0.19`, οι συμπαγές αριθμητικές τύπους εισάγουν όλους τον επικυρωτή του μητρικού αριθμού. **`Int` δεν εγγυάται ένα ολοκληρωμένο**: `7.9` διατηρείται. `Number2` διατηρεί επίσης αυτό το τμήμα.

Το `TinyInt` δέχεται τιμές από 0 έως 255. Το `SmallInt` δέχεται από -32767 έως 32767· συγκεκριμένα, το -32768 απορρίπτεται σε αυτή την έκδοση. Αυτοί οι έλεγχοι υποτύπων επιβάλλουν όρια αλλά δεν απαιτούν ακέραιες τιμές: το `TinyInt` δέχεται το `1.5`. Εφαρμόστε ρητό έλεγχο με `Number.isInteger()` για αναγνωριστικά, μετρητές ή ποσότητες που πρέπει να είναι ακέραιες. Αυτές οι παρατηρήσεις περιγράφουν αυτή την έκδοση και τις δοκιμασμένες τιμές, όχι τη σημασιολογία των στηλών 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);
}
```
