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);
  }
}
예제 #2
0
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)));
}