C++ 保留小数

#include <iostream>

#include <iomanip>

#include <math.h>

#include <cmath>

#include <stdint.h>

 

using namespace std;

float round_number(float number, int precision) {

int decimals = pow(10, precision);

return (round(number * decimals)) / decimals;

}

 

float pound(float x, int precision)

{

if (x == 0.)

return x;

int ex = floor(log10(abs(x))) - precision + 1;

float div = pow(10, ex);

return floor(x / div + 0.5) * div;

}

 

float round_n(float num, int dec)

{

double m = (num < 0.0) ? -1.0 : 1.0; // check if input is negative

double pwr = pow(10, dec);

return float(floor((double)num * m * pwr + 0.5) / pwr) * m;

}

 

float rounding(float src, int precision) {

int des;

double tmp;

double result;

tmp = src * pow(10, precision);

if(tmp < 0) {//negative double

des = (int)(tmp - 0.5);

}else {

des = (int)(tmp + 0.5);

}

result = (double)((double)des * pow(10, -precision));

return result;

}

 

int main()

{

float val = -0.125;

float res = rounding(val,2);

cout<< "res---------------->" << res <<endl;

cout<< "val---------------->" << val <<endl;

 

//保留小数点后2位

// cout << setiosflags(ios::fixed) << setprecision(2) << val << endl;

//保留2位有效数字

//cout << setprecision(2) << val << endl;

 

return 0;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值