### Godot version

4.2.dev3.official

### System information

Windows 10 - GLES3 (Compatibility)

### Issue description

When using the SpinBox node, it is possible for a user to input `NAN` into it (by clicking it and writing "NAN" as text).

I believe this should either be prevented (for example with an `allow_nan` property), or [documented](https://docs.godotengine.org/en/latest/classes/class_spinbox.html), as developers might not know that they should be checking the SpinBox's value against it.

![image](https://github.com/godotengine/godot/assets/141344817/ba1455e2-36b8-45f1-940d-32b9da92f1c4)


### Steps to reproduce

0. Create a new project.
1. Add a SpinBox node.
2. Run the project.
3. Click the SpinBox.
4. Type "NAN".
5. Press enter.

### Minimal reproduction project

[SpinBox NAN - MPR.zip](https://github.com/godotengine/godot/files/12448902/SpinBox.NAN.-.MPR.zip)

if (shared) {
		shared->owners.erase(this);
		if (shared->owners.size() == 0) {
			memdelete(shared);
			shared = nullptr;
		}
	}
}
void Range::_bind_methods() {
	ClassDB::bind_method(D_METHOD("get_value"), &Range::get_value);
	ClassDB::bind_method(D_METHOD("get_min"), &Range::get_min);
	ClassDB::bind_method(D_METHOD("get_max"), &Range::get_max);
	ClassDB::bind_method(D_METHOD("get_step"), &Range::get_step);
	ClassDB::bind_method(D_METHOD("get_page"), &Range::get_page);
	ClassDB::bind_method(D_METHOD("get_as_ratio"), &Range::get_as_ratio);
	ClassDB::bind_method(D_METHOD("set_value", "value"), &Range::set_value);
	ClassDB::bind_method(D_METHOD("set_value_no_signal", "value"), &Range::set_value_no_signal);
	ClassDB::bind_method(D_METHOD("set_min", "minimum"), &Range::set_min);
	ClassDB::bind_method(D_METHOD("set_max", "maximum"), &Range::set_max);
	ClassDB::bind_method(D_METHOD("set_step", "step"), &Range::set_step);
	ClassDB::bind_method(D_METHOD("set_page", "pagesize"), &Range::set_page);
	ClassDB::bind_method(D_METHOD("set_as_ratio", "value"), &Range::set_as_ratio);
	ClassDB::bind_method(D_METHOD("set_use_rounded_values", "enabled"), &Range::set_use_rounded_values);
	ClassDB::bind_method(D_METHOD("is_using_rounded_values"), &Range::is_using_rounded_values);
	ClassDB::bind_method(D_METHOD("set_exp_ratio", "enabled"), &Range::set_exp_ratio);
	ClassDB::bind_method(D_METHOD("is_ratio_exp"), &Range::is_ratio_exp);
	ClassDB::bind_method(D_METHOD("set_allow_greater", "allow"), &Range::set_allow_greater);
	ClassDB::bind_method(D_METHOD("is_greater_allowed"), &Range::is_greater_allowed);