欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 家装 > C++用于保留浮点数的两位小数,使用宏定义方法(可兼容低版本Visual Studio)

C++用于保留浮点数的两位小数,使用宏定义方法(可兼容低版本Visual Studio)

2025/5/9 15:29:23 来源:https://blog.csdn.net/m0_48170265/article/details/147324104  浏览:    关键词:C++用于保留浮点数的两位小数,使用宏定义方法(可兼容低版本Visual Studio)

文章目录

    • 一、 描述
    • 二、 样例
    • 二、 结果输出

一、 描述

这个宏定义(可放入.h头文件里)使用基本的数学运算,几乎兼容所有版本的VS,以下可对正数做四舍五入:

#define ROUND_TO_TWO(x) ( (floor((x) * 100 + 0.5) / 100) )

进阶版:使用三元运算符做判断,对于正数和负数,都能正确处理四舍五入

#define ROUND_TO_TWO(x) (((x) >= 0) ? (floor((x) * 100 + 0.5) / 100) : (ceil((x) * 100 - 0.5) / 100))

在 C++ 中,floor(x) 和 ceil(x) 是 <cmath>(或 C 语言中的 <math.h>)提供的数学函数,floor(x) 用于对浮点数进行向下取整,即返回不大于 x 的最大整数(即向负无穷方向取整);ceil(x) 则对浮点数进行向上取整,即返回不小于 x 的最小整数(即向正无穷方向取整)。

二、 样例

double dPI = 3.1415926;
double dPI2 = -6.1475926;
double dPI3 = -6.1;
double dPI4 = 6;
std::cout<< "ROUND_TO_TWO(dPI) =="<< "ROUND_TO_TWO(dPI)" << std::endl;
std::cout<< "ROUND_TO_TWO(dPI2) =="<< "ROUND_TO_TWO(dPI2)" << std::endl;
std::cout<< "ROUND_TO_TWO(dPI3) =="<< "ROUND_TO_TWO(dPI3)" << std::endl;
std::cout<< "ROUND_TO_TWO(dPI4) =="<< "ROUND_TO_TWO(dPI4)" << std::endl;

二、 结果输出

在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词