void milli_to_string(uint16_t v, char* buffer, uint8_t display) { char tempBuffer[20]; int decimals; if (display == DISPLAY_MILLI) { uitoa(v, tempBuffer, 10); addCommas(tempBuffer, buffer); } else { if (display == DISPLAY_3DECIMALS) { decimals = 3; } else if (display == DISPLAY_2DECIMALS) { decimals = 2; } else if (display == DISPLAY_1DECIMALS) { decimals = 1; } uitoa(v % 1000, buffer, 10); padLeft(buffer, tempBuffer, decimals, '0'); tempBuffer[decimals] = '\0'; uitoa(v / 1000, buffer, 10); strcat(buffer, "."); strcat(buffer, tempBuffer); } }
void lat_padLeft(lat_vm* vm){ lat_object* c = lat_pop_stack(vm); lat_object* b = lat_pop_stack(vm); lat_object* a = lat_pop_stack(vm); vm->regs[255] = lat_str(vm, padLeft(lat_get_str_value(a), lat_get_int_value(b), lat_get_char_value(c))); }