C/C++ 语言怎么保留n位小数并且四舍五入

1、普通的printf输出打印

printf()函数的用例

float date=123.456;
printf("date=%.2f\n", date);//保留2位
printf("date=%.1f\n", date);//保留1位

输出

2、获取四舍五入后的数据


1、使用round函数

C ++ round()函数 (C++ round() function)

round() function is a library function of cmath header, it is used to round the given value that is nearest to the number with halfway cases rounded away from zero, it accepts a number and returns rounded value.

round()函数cmath标头的库函数,用于对最接近该数字的给定值进行四舍五入,一半的情况下舍入为零,它接受一个数字并返回四舍五入的值。

Syntax of round() function:

round()函数的语法:

    round(x);

Parameter(s): x – is the number to round nearest to zero with halfway cases.

参数: x –是中途取整的数字,最接近零。

Return value: double – it returns double type value that is the rounded value of the number x.

返回值: double-返回double类型的值,该值是数字x的舍入值

 C++语言

    #include 
    #include     //round头文件
    using namespace std;

    double date= 20.3822;
    date= round(date* 100) / 100;//保留小数点后两位
    cout << "date(two):"<

C语言(部分版本不支持)

    #include 
    #include     //round头文件


    double date= 20.3822;
    date= round(date* 100) / 100;//保留小数点后两位
    printf("date(two):%f",date);
    date= round(date* 10) / 10;//保留小数点后一位
    printf("date(one):%f",date);


2、强制转换方式

#include 

int main()
{
double date= 20.3822111111111;
//保留三位
date= (int)(1000.0 * date+ 0.5) / 1000.0;
printf("date:%f\n",date);
//保留两位	
date= (int)(100.0 * date+ 0.5) / 100.0;
printf("date:%f\n",date);
   return 0;
}

你可能感兴趣的:(C语言,c++,开发语言)