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

C++ 测试案例

infinity()
#include <iostream>
#include <limits>int main() {double inf = std::numeric_limits<double>::infinity();std::cout << "Infinity (double): " << inf << std::endl;// 可以用来与其他值进行比较if (inf > 1000000) {std::cout << "Infinity is greater than 1 million!" << std::endl;}return 0;
}
# g++ testInf.cpp -o testInf
# ./testInf 
Infinity (double): inf
Infinity is greater than 1 million!
nextafter
# cat nextafter.cpp
#include <iostream>
#include <cmath>
#include <limits>
#include <iomanip>template <typename TNum>
TNum roundToDecimals(TNum number, int decimals) {// 计算放大倍数long double factor = std::pow(10.0L, static_cast<long double>(decimals));// 定义正无穷static const TNum kInf = std::numeric_limits<TNum>::infinity();// 如果 number 是负数if (number < 0) {return static_cast<TNum>(std::round(std::nextafter(number, -kInf) * factor) / factor);}// 如果 number 是正数return static_cast<TNum>(std::round(std::nextafter(number, kInf) * factor) / factor);
}int main() {// 测试数据double number1 = 194.71512499999997;int decimals1 = 5;double number2 = -194.71512499999997;int decimals2 = 5;// 调用四舍五入函数并输出结果std::cout << std::setprecision(8) << "Rounded value of " << number1 << " to " << decimals1 << " decimals: "<< roundToDecimals(number1, decimals1) << std::endl;std::cout << std::setprecision(8) << "Rounded value of " << number2 << " to " << decimals2 << " decimals: "<< roundToDecimals(number2, decimals2) << std::endl;return 0;
}
# ./nextafter
Rounded value of 194.71512 to 5 decimals: 194.71513
Rounded value of -194.71512 to 5 decimals: -194.71513

测试 nextafter

        long double factor = std::pow(10.0L, static_cast<long double>(decimals1));static const double kInf = std::numeric_limits<double>::infinity();std::cout << std::setprecision(15) << "std::nextafter(number, kInf)" << std::nextafter(number1, kInf) << std::endl;
# ./nextafterdebug
std::nextafter(number, kInf)194.715125
Rounded value of 194.71512 to 5 decimals: 194.71513
std::round()

round() 函数是 C++ 中的一个用于四舍五入的函数。它可以接受一个浮点数作为输入,并返回一个最接近输入值的整数。


http://www.mrgr.cn/news/93280.html

相关文章:

  • TypeScript(正在修改)
  • 【ORACLE】ORACLE19C在19.13版本前的一个严重BUG-24761824
  • HRNet的pt模型转rknn并实现前向推理
  • 【项目日记(八)】内存回收与联调
  • 并查集—数组实现
  • 全局异常处理器为什么不能处理过滤器异常,有那些解决方案
  • FLEXOO的传感器技术:从材料选择到生产工艺的全方位创新
  • Windows零门槛部署DeepSeek大模型:Ollama+7B参数模型本地推理全攻略
  • 在Ubuntu上搭建Samba服务,实现与windows之间的文件共享
  • 蓝桥杯真题
  • hi3516cv610适配AIC8800D80的连接路由器记录
  • leetcode1 两数之和 哈希表
  • Spring(三)容器-注入
  • FreeRTOS列表和列表项
  • 审批流AntV框架蚂蚁数据可视化X6饼图(注释详尽)
  • win11不能访问到共享文件
  • 多线程-线程池
  • AI 实战5 - pytorch框架实现face检测
  • 在S32K3上实现SOC的神经网络算法的可行性
  • io函数 day3 文件io与系统函数