当前位置: 首页 > news >正文

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;

二、 结果输出

在这里插入图片描述

相关文章:

  • 【内置函数】84个Python内置函数全整理
  • 每日OJ_牛客_kotori和素因子_DFS_C++_Java
  • Warcraft Logs [Classic] [WCL] BOSS ID query
  • 关于viewpager常见的泄漏
  • 23种设计模式全解析及其在自动驾驶开发中的应用
  • Rsync+sersync2实现目录实时同步
  • 模拟SSE流式输出的四种方法
  • 黑马商城(四)网关
  • velocity模板引擎
  • C语言用if else求三个数最小值的一题多解
  • 页内碎片和页外碎片的区别
  • 第十届团体程序设计天梯赛-上理赛点随笔
  • @Validated与@Valid的正确使用姿势
  • Python制作简易PDF查看工具PDFViewerV1.0显示优化
  • 【生态与未来】立足原生仓颉:Cangjie Magic 的生态位与未来发展潜力分析
  • 基于 GPT-SoVITS 实现个性化语音复刻的API服务调用:让小说朗读拥有专属声线
  • 静态成员相关知识
  • AOSP的Doze模式-LightIdle初识
  • 测试基础笔记第六天
  • 『Linux_网络』 第二章 UDP_Socket编程
  • 沈晓萍︱严金清:比斯坦因更早获得敦煌文物的无锡名士
  • 贵州锦屏县委原书记舒健已任黔东南州政府办主任
  • 辽宁省委书记、省长连夜赶赴辽阳市白塔区火灾事故现场,指导善后处置工作
  • “75后”袁达已任国家发改委秘书长
  • 中国建设银行浙江省分行原党委书记、行长高强接受审查调查
  • 习近平对辽宁辽阳市白塔区一饭店火灾事故作出重要指示