103 char buffer[21] = {0};
105 if (!
format_u64(buffer,
sizeof(buffer), value)) {
109 size_t digits = strlen(buffer);
111 if (digits <= decimals) {
112 if (dst_len <= 2 + decimals - digits) {
117 for (
uint16_t i = 0; i < decimals - digits; i++, dst++) {
120 dst_len -= 2 + decimals - digits;
121 strncpy(dst, buffer, dst_len);
124 if (dst_len <= digits + 1 + decimals) {
128 const size_t shift = digits - decimals;
129 memmove(dst, buffer, shift);
131 strncpy(dst + shift + 1, buffer + shift, decimals);