C++ 保留小数

论坛 期权论坛 脚本     
匿名技术用户   2021-1-7 02:40   36   0

#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;

}

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP