### 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
}
	return p_text_plural;
}
/**
 * "Docs TRanslate". Used for the editor class reference documentation,
 * handling descriptions extracted from the XML.
 * It also replaces `$DOCS_URL` with the actual URL to the documentation's branch,
 * to allow dehardcoding it in the XML and doing proper substitutions everywhere.
 */
 DTR(const  &p_text, const  &p_context) {
	// 
	const  text = p_text.dedent().strip_edges();
	if (TranslationServer::get_singleton()) {
		return (TranslationServer::get_singleton()->doc_translate(text, p_context)).replace("$DOCS_URL", VERSION_DOCS_URL);
	}
	return text.replace("$DOCS_URL", VERSION_DOCS_URL);
}
/**
 * "Docs TRanslate for N items". Used for the editor class reference documentation
 * (with support for plurals), handling descriptions extracted from the XML.
 * It also replaces `$DOCS_URL` with the actual URL to the documentation's branch,
 * to allow dehardcoding it in the XML and doing proper substitutions everywhere.
 */
 DTRN(const  &p_text, const  &p_text_plural, int p_n, const  &p_context) {
	const  text = p_text.dedent().strip_edges();
	const  text_plural = p_text_plural.dedent().strip_edges();
	if (TranslationServer::get_singleton()) {
		return (TranslationServer::get_singleton()->doc_translate_plural(text, text_plural, p_n, p_context)).replace("$DOCS_URL", VERSION_DOCS_URL);
	}
	//