INNER CODE UNIT · C++
ratio
trillek-team/tec · client/main.cpp:74
double ratio = static_cast<double>(window_width) / static_cast<double>(window_height);
double intVal = std::floor(ratio);
double precision = 1000;
double fraction = std::round((ratio - intVal) * precision);
double gcd = std::gcd(static_cast<int>(fraction), static_cast<int>(precision));
double numer = fraction / gcd;
double denom = precision / gcd;
std::ostringstream aspect_ratio;
aspect_ratio << static_cast<int>(std::round((intVal * denom) + numer)) << ":"
<< static_cast<int>(std::round(denom));
return aspect_ratio.str();
}
int main(int argc, char* argv[]) {
tec::Console console;
tec::OS os;