四舍五入_四舍五入算法 - CSDN
精华内容
参与话题
  • 整数四舍五入的两种方法——c实现

    千次阅读 2019-08-15 09:05:26
    四舍五入是c语言编程经常使用的函数。这里记录用整数输入进行四舍五入的判断方法。 1、使用条件表达式 实际上只需要观察四舍五入之后的余数,如果余数大于0.5,则进1,反之保留整数。这里可以用条件表达式。 假设...

    四舍五入是c语言编程经常使用的函数。这里记录用整数输入进行四舍五入的判断方法。

    1、使用条件表达式

    实际上只需要观察四舍五入之后的余数,如果余数大于0.5,则进1,反之保留整数。这里可以用条件表达式。

    假设输入的int整数a,int整数b是a四舍五入之后的整数。相应程序如下:

    int b=(a-2*(a/2))>=1?a/2+1:a/2;	//四舍五入

    上面方法易于理解,使用条件表达式使得代码精简。

    2、利用浮点数的特点

    还可以利用浮点数取整的特点,及如果浮点数的小数部分是[0,0.5),取整后只保留整数,如果将其加上0.5,取整后仍然还是保留的整数;如果小数部分是[0.5,0.99……],取整后仍是整数,但是加上0.5之后,再取整则达到的整数将比原来的大1。

    因此可以采用下面的方法

    double b;
    b=int(b+0.5);

    例如:

    #include <iostream>
    using namespace std;
    int main(){
    	double a;	cin>>a;
    	cout<<int(a+0.5);
    	return 0;
    }

    这里要注意强制转换使用需要注意的地方:最好使用“类型+(强制转换的变量表达式)”。

    例如下面两个是不一样的:

    int a=2.5,b=2.4,a1,a2,b1,b2;
    a1=(int)a+0.5;
    a2=int(a+0.5);
    b1=(int)b+0.5;
    b2=int(b+0.5);
    
    /*
    a1=2.5
    a2=3
    b1=2.5
    b2=2
    */

    如果只对强制转换的目标类型加括号,如上面的(int),结果就是会选择最近的变量进行强制类型转换,不会把后面的表达式都进行强制类型转换。

    展开全文
  • C++中的四舍五入方法

    千次阅读 2014-02-19 10:57:03
    原文地址:C++中的四舍五入方法作者:魔岩 方法一:使用setprecision(n)可控制输出流显示浮点数的数字个数,C++默认的流输出数值有效位是6。    如果setprecision(n)与setiosflags(ios::fixed)合用,可控制...
    原文地址:C++中的四舍五入方法作者:魔岩

    方法一:使用setprecision(n)可控制输出流显示浮点数的数字个数,C++默认的流输出数值有效位是6。

              如果setprecision(n)与setiosflags(ios::fixed)合用,可控制小数点右边的个数。setiosflags(ios::fixed)是用定点方式表示实数。 
           如果与setiosnags(ios::scientific)合用,可以控制指数表示法的小数位数。setiosflags(ios::scientific)是用指数方式表示实数。
    方法二:利用算法进行四舍五入,在例子中介绍。

    #include <iostream>

    #include <iomanip> //要用到格式控制符

    #include<cmath>
    using namespace std;

     

    int main()
    {
          double amount = 22.0/7;
          cout<<amount <<endl;

          //法一
          cout<<setprecision(0) <<amount <<endl;
          cout<<setprecision(1) <<amount <<endl;
          cout<<setprecision(2) <<amount <<endl;
          cout<<setprecision(3) <<amount <<endl;
          cout<<setprecision(4) <<amount <<endl;
       cout <<setiosflags(ios::fixed)<<setprecision(8) <<amount <<endl;
          //法二
          //取整时四舍五入
       double aount=22.0/7,a,b,c;
          int x;
          x=int(aount*10);
          if(x<5)
                a=int(aount);
          else
                a=int(aount)+1;
          cout<<"四舍五入后为:"<<a<<endl;

          //取一位小数时四舍五入

          x=int(aount*100);
          if(x<5)
                b=int((aount*10))/10.0;
          else
                b=int(aount*10+1)/10.0;
          cout<<"四舍五入后为:"<<b<<endl;
          //取n位小数

           double n;

         cout<<"请输入小数位数n:";

            cin>>n;//n<=5

           x=int(aount*pow(10,n));
          if(x<5)
                c=int(amount*pow(10,n-1))/pow(10,n-1);
          else
                c=int(amount*pow(10,n-1)+1)/pow(10,n-1);
       cout<<"四舍五入后为:"<<c<<endl;
       return 0;
    }

    展开全文
  • 编程小技巧:四舍五入

    千次阅读 2018-02-20 11:35:09
    今天跟大家分享的小技巧是跟浮点数取整相关,我们知道计算机在为浮点数取整是通常是向零取整,...乍一看来这么做没有任何问题,但在实际问题中我们常常希望让浮点数“四舍五入”,也就是说如果对变量a取整,得到的数...

            今天跟大家分享的小技巧是跟浮点数取整相关,我们知道计算机在为浮点数取整是通常是向零取整,也就是说会自动将浮点数的小数部分忽略掉。例如下面的例子:

    float a = 3.68;
    int b = (int)a;
    

            我们将变量a取整后赋值给变量b,则变量b的值为3。乍一看来这么做没有任何问题,但在实际问题中我们常常希望让浮点数“四舍五入”,也就是说如果对变量a取整,得到的数不应该是3,而应该是4。于是问题来了,我们如何对一个浮点数进行四舍五入处理呢?好多程序员都会采用传统的“四舍五入”的观念去判断a的小数位是否大于或等于0.5,例如:

    float a = 3.68;
    float b = a - (int)a;
    if (b >= 0.5)
    {
        b = (int)a + 1;
    }
    else
    {
        b = (int)a;
    }
    

            这样的做法结果是正确的,虽然达到了“四舍五入”的目的,但程序本身太过复杂。下面我们介绍一种巧妙的办法:

    float a = 3.68; 
    float b = (int)(a + 0.5);
    

            在这里,我们将a加上0.5 ,再对其向零取整,如果a的小数位大于或等于0.5,加上0.5之后整数位必定进1,否则不变,于是我们得到了“四舍五入”后的结果。

       

            今天的小技巧你学会了吗?


    欢迎关注公众号:编程外星人

    展开全文
  • System.out.println("---------------五种四舍五入保留小数的方法-------------------"); System.out.println("-------第一种String法-------"); String s1=String.format("%.2f", 3.14563); System.out.pr...
     System.out.println("---------------五种四舍五入保留小数的方法-------------------");
            System.out.println("-------第一种String法-------");
            String s1=String.format("%.2f", 3.14563);
            System.out.println(s1);
            System.out.println("-------第二种Math法---------");
            System.out.println(Math.round(3.1546*100)/100.0);
            System.out.println("-------第三种BigDecimal-----");
            BigDecimal bigDecimal = new BigDecimal("3.1563245");
            BigDecimal bigDecimal1=bigDecimal.setScale(2, BigDecimal.ROUND_HALF_UP);
            System.out.println(bigDecimal1);
            System.out.println("-------第四种printf---------");
            System.out.printf("%.2f",3.1456789);
            System.out.println();
            System.out.println("-------第五种DecimalFormat--");
            DecimalFormat decimalFormat = new DecimalFormat("#.##");
            String s2=decimalFormat.format(3.15646589);
            System.out.println(s2);
    

     

    展开全文
  • 四舍五入的方法

    2018-12-30 16:30:07
    printf("%d", (int)(max + 0.5));
  • 四舍五入操作

    2018-05-23 22:17:35
    * 进行数据的四舍五入操作 * @param num 原始的操作数据 * @param scale 保留的小数位数 * @return 四舍五入后的数据内容 */ public static double round(double num,int scale){ return Math.round(num * ...
  • 四舍五入的问题

    2018-12-20 09:20:09
    一、如果是不保留小数的四舍五入(也就是只留下整数部分) 用floor函数 头文件 floor(x),也写做Floor(x),其功能是“向下取整”,或者说“向下舍入”,即取不大于x的最大整数(与“四舍五入”不同,下取整是直接取...
  • C#四舍五入的方法

    千次阅读 2020-07-11 10:16:09
    在C#中要实现四舍五入的方法主要有三种: 一. 使用Round()方法进行输出: double Z1 = 55.686 double z = Math.Round(Z1, 2); 输出结果为:55.69 decimal w = decimal.Round(decimal.Parse(Z1), 2); 输出结果为:55.69 ...
  • 四舍五入”总结

    2019-05-20 17:27:57
    在做pta-1026的时候遇到四舍五入的问题,现在总结一下四舍五入的方法与思路: 方法一: 用判断语句对100取余后,小数点后的几位数与50的大小比较; int cha = c2-c1; if(cha%100 >=50) { cha = cha +1; ...
  • java四舍五入BigDecimal

    万次阅读 2010-01-21 10:19:00
    java四舍五入package Test;import java.math.BigDecimal; //引入这个包public class Test { public static void main(String[] args) { double i = 3.856; // 舍掉小数取整 System.out.println("舍掉小数取整:
  • 菜鸟教程中介绍到,round() 函数作用就是,返回浮点数x的四舍五入值。 round( x [, n] ) 参数x,n均为数值表达式,返回值为x的四舍五入值。n为保留的小数位数,不加n则只保留x四舍五入后的整数部分。 &amp;amp...
  • 2.四舍五入取整:round(); 3.向上取整,有小数就加1:ceil(); 4.向下取整:floor()。一、intval—对变数转成整数型态 intval如果是字符型的会自动转换为0。intval(3.14159); // 3 intval(3.64159); // 3 intval...
  • 在很多场景的计算中,最终得到的数值例如123.45678,要截取2位小数得到123.45,而不是默认的四舍五入方法得到123.46,如何实现呢? 一.小数点后取2位(四舍五入)的方法 方法一:round()函数 方法二:’%.2f...
  • C语言实现四舍五入

    万次阅读 多人点赞 2018-04-18 18:07:43
    C语言中实现四舍五入: (int)(a+0.5)即可。 很巧妙的用了取整规则。 也不用导入math.h 同样注意负数的情况。 把 + 换成 - 即可。 float f = …..; int i = (int)(f + 0.5); i就是f四舍五入的结果。 今天我要...
  • js保留2位小数(且四舍五入

    万次阅读 2018-10-11 19:46:08
    toFixed() 方法可把 Number 四舍五入为指定小数位数的数字。 但是其四舍五入的规则与数学中的规则不同,使用的是银行家舍入规则。 银行家舍入:所谓银行家舍入法,其实质是一种四舍六入五取偶(又称四舍六入五留双...
  • SQL Server中的四舍五入函数ROUND

    万次阅读 2016-01-27 20:12:53
    通过函数ROUND四舍五入在SQL Server中,若想完成四舍五入,可使用函数ROUND。如下对ROUND的使用做简单演示。保留2位小数,对第3位做四舍五入处理(注意最后一位数字:4或5)--保留2位小数,并对第3位小数四舍五入 ...
  • C语言四舍五入的实现方法。

    万次阅读 2017-05-23 14:42:04
    今天在oj上看到了一道看起来很简单的题目,结果四舍五入竟然找不到很好的算法实现,百度了一下发现...这么简单!!!所以还是要继续努力啊,加油! Description 在我们的日常学习、生活、工作中要分得清主次,既能...
  • python中int() 按照“四舍五入”的方式取整

    万次阅读 多人点赞 2018-06-07 16:28:03
    (注:5.5向上取整为6,向下取整为5)正常情况下 int(5.5) 结果为5如果想要让其按照人类的思维“四舍五入”5.4 “四舍五入”结果为:5,int(5.4+0.5) == 55.6 “四舍五入”结果为:6,int(5.6+0.5) == 6...
  • 四舍五入的方式: 这种方式可以使用js自带的函数:value.toFixed(x),x为需要保留的小数位数,不足位数时会补0,value须为Number类型; 例: let data=12.135; console.log(data.toFixed(2));//12.14 非四舍五入...
  • 最近快被ios的四舍五入的问题给烦死了,不是说他的四舍五入不好用,而是这个四舍五入有时可能不是四舍五入,而是四舍六入。 先说一下我最后确定使用的方法: -(float)roundFloat:(float)price{   return ...
1 2 3 4 5 ... 20
收藏数 136,630
精华内容 54,652
关键字:

四舍五入