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;

二、 结果输出

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值