std::ratio分数计算

std::ratio代表一个比例,或者说比率。其实就是将给定的两个整数分别除以它们的最大公约数得到一个分数(分子及分母)。分数通过分子和分母分开表示的方式来实现数据数据的分离,并可以实现两个分数之间的计算。如果想实际获取分数表示的double或者整数类型结果,需要通过除法运算符/来实现两个数据之间的运算。

1. 分数特定的运算单位

typedefinitiondescription
yoctoratio<1,1000000000000000000000000>10-24 *
zeptoratio<1,1000000000000000000000>10-21 *
attoratio<1,1000000000000000000>10-18
femtoratio<1,1000000000000000>10-15
picoratio<1,1000000000000>10-12
nanoratio<1,1000000000>10-9
microratio<1,1000000>10-6
milliratio<1,1000>10-3
centiratio<1,100>10-2
deciratio<1,10>10-1
decaratio<10,1>101
hectoratio<100,1>102
kiloratio<1000,1>103
megaratio<1000000,1>106
gigaratio<1000000000,1>109
teraratio<1000000000000,1>1012
petaratio<1000000000000000,1>1015
exaratio<1000000000000000000,1>1018
zettaratio<1000000000000000000000,1>1021 *
yottaratio<1000000000000000000000000,1>1024 *

实际计算实例

// ratio example
#include <iostream>
#include <ratio>

int main ()
{
  typedef std::ratio<1,3> one_third;
  typedef std::ratio<2,4> two_fourths;

  std::cout << "one_third= " << one_third::num << "/" << one_third::den << std::endl;
  std::cout << "two_fourths= " << two_fourths::num << "/" << two_fourths::den << std::endl;

  typedef std::ratio_add<one_third,two_fourths> sum;

  std::cout << "sum= " << sum::num << "/" << sum::den;
  std::cout << " (which is: " << ( double(sum::num) / sum::den ) << ")" << std::endl;

  std::cout << "1 kilogram has " << ( std::kilo::num / std::kilo::den ) << " grams";
  std::cout << std::endl;

  return 0;
}

 输出结果为

one_third= 1/3
two_fourths= 1/2
sum= 5/6 (which is 0.833333)
1 kilogram has 1000 grams

2. 类涉及方法

涉及分数的加减乘除相等等运算

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值