### Godot version

4.1.1

### System information

linux

### Issue description

The `"%+f"` format adds a `+` sign in front of positive numbers. If you try to format `-0.0`, it breaks and displays both a `+` and a `-`.

### Steps to reproduce

```gdscript
@tool
extends EditorScript

func _run() -> void:
    print("%+f" % -0.0)
```

### Minimal reproduction project

see above
ii = s.split_ints(";");
	CHECK(ii.size() == 2);
	for (int i = 0; i < ii.size(); i++) {
		CHECK(ii[i] == slices_i[i]);
	}
	ii = s.split_ints_mk(keys);
	CHECK(ii.size() == 3);
	for (int i = 0; i < ii.size(); i++) {
		CHECK(ii[i] == slices_i[i]);
	}
}
struct test_27_data {
	char const *data;
	char const *part;
	bool expected;
};
TEST_CASE("[String] Begins with") {
	test_27_data tc[] = {
		{ "res://foobar", "res://", true },
		{ "res", "res://", false },
		{ "abc", "abc", true }
	};
	size_t count = sizeof(tc) / sizeof(tc[0]);
	bool state = true;
	for (size_t i = 0; state && i < count; ++i) {
		String s = tc[i].data;
		state = s.begins_with(tc[i].part) == tc[i].expected;
		if (state) {
			String sb = tc[i].part;
			state = s.begins_with(sb) == tc[i].expected;