当前位置: 首页 > 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编程
  • “你是做什么的?”——人们能否对工作说不?
  • 上海地铁5G信号全覆盖后网速如何?记者亲测有这些发现
  • 一镇一链、一园一策,上海闵行发布重点产业区镇协同产业地图
  • 巡视杭州市工作动员会召开,市长姚高员表态
  • 鲁比奥在法国只字不提关税,美国威胁下欧盟勉力维持统一战线
  • 最高检:一些不法分子以婚介之名实施诈骗,亟待治理和规范