当前位置: 首页 > 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;

二、 结果输出

在这里插入图片描述

http://www.xdnf.cn/news/33787.html

相关文章:

  • JZ8P1533 充电型数字可编程控制器
  • 200+短剧出海平台:谁能成为“海外红果”?
  • 电脑端移植至手机平板:攻克难题,仙盟架构显神通——仙盟创梦IDE
  • 2025.04.19-阿里淘天春招算法岗笔试-第二题
  • 在RK3588上使用SRS流媒体服务器
  • kafka集群认证
  • NumPy 核心指南:零基础入门与实践
  • 商标起名换了暗示词,通过初审!
  • 边生成边训练:构建合成数据驱动的在线训练系统设计实战
  • XMind 下载指南
  • 基于autoware.1.14与gazebo联合仿真进行全局规划高精地图版
  • 可穿戴经颅多通道直流电刺激产品测试总结
  • 16、堆基础知识点和priority_queue的模拟实现
  • 为什么 waitress 不支持 WebSocket?
  • PyTorch源码编译报错“fatal error: numpy/arrayobject.h: No such file or directory”
  • SEO长尾关键词优化实战
  • velocity模板引擎
  • 【一起学Rust】使用Thunk工具链实现Rust应用对Windows XP/7的兼容性适配实战
  • RoBoflow数据集的介绍
  • JVM笔记【一】java和Tomcat类加载机制
  • PHP怎样连接MySQL数据库?
  • 基于STM32中断讲解
  • 【JDBC-54.5】JDBC批处理插入数据:大幅提升数据库操作性能
  • YOLO拓展-NMS算法
  • GWAS_LD
  • TCP 总是禁用分片(IP_DF,Don‘t Fragment)吗?
  • 基于尚硅谷FreeRTOS视频笔记——9—上下文切换的时机与空闲任务
  • 第10期:Classifier-Free Guidance(CFG)——扩散模型的文本引导增强术
  • pycharm中怎么解决系统cuda版本高于pytorch可以支持的版本的问题?
  • Python 一等函数( 把函数视作对象)