https://pkg.go.dev/fmt#hdr-Printing
The '#' means you want the alternate format with the 0x prepended, and the
'7' means you want the number itself padded to 7 digits
x := fmt.Sprintf("%07x", 42) // 000002a
y := fmt.Sprintf("%0#7x", 42) // 0x000002a
z := fmt.Sprintf("0x%07x", 42) // 0x000002a
Seems pretty logical to me. If Python chooses to do it a different way,
that's because Python is a different language.
On Wednesday 31 January 2024 at 13:23:01 UTC Lukas Toral wrote:
> Hello,
>
> I am working on code that formats strings. I have an issue with formatting
> the alternate form with zero padding of signed hexadecimals.
>
> I have a format string like this: "%#07x", I would expect the zero padding
> to make sure the total width is 7. However, when I format the string using
> fmt.Sprintf I get the following results: 0x000002a which has the length of
> 9 characters instead of the expected result: 0x0002a with the width of 7
> characters.
>
> Example code: x := fmt.Sprintf("%#07x", 42)
> x will be equal to: 0x000002a
>
> Example of python code that works as I would expect: result =
> "{:#07x}".format(42)
> results will be equal to: 0x0002a
>
> I am suspicious that this might be a bug where the 0x is not accounted in
> the width but maybe I am doing something wrong.
> Thanks for any help :)
>
--
You received this message because you are subscribed to the Google Groups
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/golang-nuts/2a1e0976-4298-4e27-92c4-c5cf079482bfn%40googlegroups.com.