### 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
char32_t c[2] = { p_char, 0 };
	return (c);
}
 ::num(double p_num, int p_decimals) {
	if (Math::is_nan(p_num)) {
		return "nan";
	}
	if (Math::is_inf(p_num)) {
		if (signbit(p_num)) {
			return "-inf";
		} else {
			return "inf";
		}
	}
	if (p_decimals < 0) {
		p_decimals = 14;
		const double abs_num = ABS(p_num);
		if (abs_num > 10) {
			
			
			p_decimals -= (int)floor(log10(abs_num));
		}
	}
	if (p_decimals > MAX_DECIMALS) {
		p_decimals = MAX_DECIMALS;
	}
	char fmt[7];
	fmt[0] = '%';
	fmt[1] = '.';
	if (p_decimals < 0) {