C++中double型数据的取模运算

2019-04-13 16:10发布

double型数据的取模运算

1.计算思路

   由于double型数据存在精度问题,所以不能以往常的思想解决---即取得 n = kp + r;这里我的思路是将double型数据放大后转为int型数据取模,然后再缩小为放大的倍数。

2.double型数据转换为字符串

     因为我们需要知道放大的倍数,所以必须知道小数点后有多少位,这里我的想法是将double型数据转为为字符串,然后计算小数点后的位数,思路相对简单。double型数据转换为字符串的代码如下:string do_fraction(long double value, int decplaces) { ostringstream out; char DECIMAL_POINT='.'; // 欧洲用法为',' int prec=numeric_limits::digits10; // 18 out.precision(prec); //覆盖默认精度 out< n+decplaces)) //后面至少还有decplaces位吗? { str[n+decplaces]='