首页 > 编程语言 >c++中正确使用round()来四舍五入计算

c++中正确使用round()来四舍五入计算

时间:2023-06-05 14:34:26浏览次数:41  
标签:std 四舍五入 13 demo c++ basic round

说明
四舍五入的函数参数可以有多种数据类型。不同的数据类型有不同的结果。
当他的参数应该是浮点数的时候,结果才是真正的四舍五入。

例子

/*
g++ -g -std=c++17 ./src/basic_demo.cpp -o basic_demo
*/

#include <iostream>
#include <cmath>

void test_round(){
    // 参数是浮点数的情况,结果正确
    std::cout << "std::round(12.369)\t" << std::round(12.369) << std::endl;
    std::cout << "std::round(12.9)\t" << std::round(12.9) << std::endl;

    int a1 = 10;
    int a2=13;
    int b=7;

    //参数是整数组成的分子和分母的时候,结果错误
    std::cout << "std::round(10/7)\t" << std::round(10/7) << std::endl;
    std::cout << "std::round(13/7)\t" << std::round(13/7) << std::endl;

    //调整一下参数的类型,结果正确
    std::cout << "std::round(1.0*10/7)\t" << std::round((1.0*10)/7) << std::endl;
    std::cout << "std::round(1.0*13/7)\t" << std::round((1.0*13)/7) << std::endl;
}


int main(int argc, char **argv)
{
    test_round();
    return 0;
}

程序的结果

baby@ubuntu2204:~/devel/cpp$ ./basic_demo 
std::round(12.369)      12
std::round(12.9)        13
std::round(10/7)        1
std::round(13/7)        1
std::round(1.0*10/7)    1
std::round(1.0*13/7)    2

 

标签:std,四舍五入,13,demo,c++,basic,round
From: https://www.cnblogs.com/babyha/p/17457685.html

相关文章

  • C++ 随机数
    ​在许多情况下,需要生成随机数。关于随机数生成器,有两个相关的函数。一个是 rand(),该函数只返回一个伪随机数。生成随机数之前必须先调用 srand() 函数。 下面是一个关于生成随机数的简单实例。实例中使用了 time() 函数来获取系统时间的秒数,通过调用rand()函数来生......
  • C++ 定义数字
     我们已经在之前章节的各种实例中定义过数字。下面是一个C++中定义各种类型数字的综合实例:实例#include<iostream>usingnamespacestd; intmain(){//数字定义shorts;inti;longl;floatf;doubled; //数字赋值s=10;i=1000;l=1000000;f=23......
  • visual studio 2010 c++ 创建com组件
    在VisualStudio2010中创建COM组件需要执行以下步骤:1. 打开VisualStudio2010,选择“新建项目”。2. 在弹出的对话框中选择“VisualC++”-->“Win32”-->“Win32项目”,并选择“DLL”作为应用程序类型。3. 单击“下一步”按钮。在下一个页面上,选择“ATL”,然后单击“完......
  • c++实现射线法 点和闭合区域位置关系判断
    c++实现射线法  点和闭合区域位置关系判断#include<iostream>#include<vector>structPoint{doublex;doubley;};structPolygon{std::vector<Point>vertices;};//定义三个点的方向//0-->点p,q,r是共线的//1-->顺时针//2-->......
  • C++之浅拷贝和深拷贝
    浅拷贝:简单的复制拷贝操作P1的生命周期结束后,判断m_PtrAge是否为空,很明显m_PtrAge的值是0x0100,不为空,释放m_PtrAge指向的内存;P2的生命周期结束后,同样判断m_PtrAge是否为空,很明显m_PtrAge的值也是0x0100,也不为空,再次释放m_PtrAge指向的内存空间;两次释放都指向同一块内存空间,造成......
  • C++智能指针:weak_ptr
    weak_ptr虽然是智能指针,但实际上是作为shared_ptr的辅助指针使用。weak_ptr通常不单独使用,一般用于查看对应的shared_ptr的信息。weak_ptr没有重载*,->等指针运算符。weak_ptr对象不会影响shared_ptr对象的引用计数。 #include<iostream>#include<string.h>#include<memory......
  • C++继承
      三类继承方式子类会将父类的所有非静态成员属性继承过来,只不过编译器隐藏了父类的私有属性,子类不可以访问。 1classBase{2public:3inta_;4protected:5intb_;6private:7intc_;8};910classSon:publicBase{11pu......
  • NSSCTF_Round13 web
    flask?jwt?1.信息收集题目提示这里告诉了这题涉及的内容2.开始探索(1)发现有注册,有忘记密码然后这里尝试admin登录,但失败所以直接注册一个用户 (2)注册后登录给出页面,点了拿flag,访问/getFlag路由但是告诉不是admin  然后根据题目信息里的提示应该就需要伪造admin......
  • 一个基于C++11的异步安全日志库
    0源码获取gitee1概述这是一个基于c++11的异步日志库目前仅支持windows已通过VS2019+windows11测试。支持自动清理距今指定天数的日志支持设定日志文件输出路径2待实现支持linux3一个范例使用范例 std::unique_ptr<oct_tk::AsyncLogging>async_log=s......
  • C++ 多态原理
    多态就是多种形态,C++的多态分为静态多态与动态多态。动态多态就是通过继承重写基类的虚函数实现的多态,在基类的函数前加上virtual关键字,在派生类中重写该函数,运行时将会根据对象的实际类型来调用相应的函数。多态的总结:(1)用virtual关键字声明的函数叫做虚函数,虚函数肯定是类的......