std::ratio
std::ratio是一个模板类,用于表示有理数的比率。其定义为:

其中,Numerator表示有理数的分子,Denominator表示有理数的分母,默认为1。
std::ratio提供了在编译时计算的有理数操作,可以进行加法、减法、乘法、除法、比较等运算。这些运算是类型的运算,得到的结果也是类型。对于比较运算类型,可以用成员value获取比较的结果的布尔值。
Case :

std::ratio的成员num和den分别表示有理数的分子和分母。
作用
I. std::ratio可以用于单位转换。通过将数值与适当的有理数比率相乘或相除,可以实现不同单位之间的转换。例如,将米转换为英尺或将秒转换为毫秒等。
II. 有时候需要在计算中使用固定精度的数值,例如在金融计算或物理模拟中。使用std::ratio可以定义分数形式的固定精度数值,以避免浮点数精度问题。
III. 在编译时,使用std::ratio对有理数进行运算和比较的操作,可以提高程序的性能和效率。相比于在运行时进行计算,编译时计算可以在编译期间进行优化,消除冗余的计算和运行时的开销。这在需要进行频繁计算或执行常量表达式计算的情况下很有用。