Modernes C++ programmieren

Okt 23, 2024

lst-0138-godb.cpp

//#(compile) c++; compiler:g132; options:-O3 -std=c++23; libs:-
// https://godbolt.org/z/6hWvqhY7W 
#include <iostream>
#include <format>
void prints(short s, int i, float f, double d) {
  std::cout << std::format("short: {} int: {} float: {:.2f} double: {:.2f}\n",
    s, i, f, d);
}
int main() {
  int mill = 1000*1000;                // 1 Million
  prints(mill, mill, mill, mill);      // short läuft über
  // Ausgabe: short: 16960 int: 1000000 float: 1000000.00 double: 1000000.00
  long bill = 1000L*1000L*1000L*1000L; // 1 Billion
  prints(bill, bill, bill, bill);      // sogar int läuft über, float wird ungenau
  // Ausgabe: short: 4096 int: 727379968 
  // float: 999999995904.00 double: 1000000000000.00
  float drei = 3.75f;
  prints(drei, drei, drei, drei);     // Nachkommastellen gehen verloren
  // Ausgabe: short: 3 int: 3 float: 3.75 double: 3.75
}