近日,发现小数四舍五入写代码有问题,遂网络上查了下资料,记录下来以便日后查询。

原理:放大数据,再利用运算符的优先级处理。

1.首先,得知道,运算优先级,括号→转换→乘除加减。

2.两种方式,主要是放大倍数不同。

㈠平方实现:

#include <stdio.h>long powe(long n);int main(void)
{long t;            //过渡量long i = 3;       //精度,小数点后几位。float h = 11.5555; //需要进行四舍五入的数t = (long)((h*powe(i+1)+5)/10.0);h = (float)t/powe(i);printf("%f",h);return 0;
}long powe(long n)  //平方
{long x=1;if(n>0)x = 10*powe(--n); elsereturn 1;return x;
}

㈡加法实现:

#include <stdio.h>double powe(double n);int main(void)
{double x = 11.55556666;           //需四舍五入的数double i = 3;                 //精度double y = 0;                  //结果y = 0.01*1.0/powe(i)*(int)(100.0*powe(i)*(x+0.005*1.0/powe(i)));//默认小数点后一位printf("%f",y);return 0;
}double powe(double n)
{--n;double s = 0;if(--n>0)s = 10*powe(--n);elsereturn 1;return s;
}

总结:

以上两种方式都是针对小数点后几位进行四舍五入,第一种方式优点在于负数也能进行,第二种则不能。但需注意的是,在第一种方式中隐形转换对其影响大,个人推荐使用第二种方式。

转载于:https://www.cnblogs.com/chenmou/p/4928569.html

关于小数四舍五入的方式相关推荐

  1. SQL 保留两位小数的实现方式

    SQL 保留两位小数的实现方式 SQL中保留两位小数的方法有三种,(第2.3种方法类似): 1.使用ROUND()函数,ROUND返回一个数值,舍入到指定的长度或精度,使用示例: SELECT ROU ...

  2. javascript小数四舍五入

    javascript小数四舍五入 1.  function get() {     var s = 22.127456 + "";     var str = s.substrin ...

  3. 数字取整或保留小数四舍五入的正确写法

    [JS篇] 使用toFixed是错误的!请看下面例子: (0.05).toFixed(1) //0.1 (0.15).toFixed(1) //0.1 (0.25).toFixed(1) //0.3 ...

  4. 一个对于小数四舍五入的算法C语言版

    一个对于小数四舍五入的简单算法 声明:对于解题,应该会有更为简便的算法,通过测试点即可,本算法可以提供一种参考,是一个通用的关于带有小数的四舍五入算法,本人学生党,手写不易,不喜勿喷,谢谢,也希望有各 ...

  5. Python-小数取整与小数四舍五入

    Python-实现小数四舍五入 前言 1. round()函数 1.1 round(num)取整 1.2 round(num, 0)取值 1.2 round(num, n)小数四舍五入 2. int( ...

  6. BigDecimal的用法详解(保留两位小数,四舍五入,数字格式化,科学计数法转数字,数字里的逗号处理)

    一.简介 Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算.双精度浮点型变量double可以处理16位有效数.在实际应用中,需要对更大或者更 ...

  7. JAVA零碎要点015---java BigDecimal常见操作_加减乘除操作_比较_取几位小数四舍五入_随时更新

    技术交流QQ群[JAVA,C++,Python,.NET,BigData,AI]:170933152 之前项目都很少用这个BigDecimal啊,最近这个项目对精度要求高,一个电视购物,广告拍摄,排挡 ...

  8. java保留两位小数 四种方式

    方式一:四舍五入 double f = 111231.5585; BigDecimal b = new BigDecimal(f); double f1 = b.setScale(2, BigDeci ...

  9. python中int() 按照“四舍五入”的方式取整

    使用 int() 将小数转换为整数,小数取整会采用比较暴力的截断方式,即向下取整. (注:5.5向上取整为6,向下取整为5) 正常情况下 int(5.5) 结果为5 如果想要让其按照人类的思维&quo ...

最新文章

  1. cytocape绘图(三)
  2. CLion报错解决:allocating an object of abstract class type--unimplemented pure virtual method
  3. 20年的人工智能设计总结:向产品中注入人工智能的指南
  4. 快速上手RaphaelJS-Instant RaphaelJS Starter翻译(一)
  5. java 气泡_Java气泡提示功能实现
  6. IE6Bug,外层container设置了overflow:auto,但是内层嵌套元素有position:relative的时候,显示错误。...
  7. Shiro实现认证_ini
  8. 判定Java源文件名称_JAVA
  9. 科大星云诗社动态20210412
  10. 环形队列出队的元素怎么输出出来_队列的知识讲解与基本实现(数据结构)
  11. 飞鸽传书2007绿色版 唯一官方下载地址
  12. 190910-ajax-请求小结
  13. awk分割列 输出时间相关
  14. windows功能正在搜索需要的文件_拥有高效的搜索工具Everything,可以丢开Windows的搜索功能了...
  15. 什么是Dao层、Entity层、Service层、Servlet层、Utils层?
  16. DRF实战1 - 环境搭建
  17. 2018年研究生数学建模优秀论文汇总
  18. echarts切换飞线图未清空_echarts做飞线图
  19. 考研日语线上笔记(七):十年真题完型精翻篇(2012-2021年)
  20. Kali linux虚拟机设置1920x1080分辨率

热门文章

  1. 【警告:操作失误造成硬盘毁灭性故障】
  2. 在IntelliJ IDEA中使用Spring Initializr创建项目以及Maven集成与配置
  3. HTML标签基础知识
  4. 浅谈git rebase和git checkout --ours(theirs)
  5. [转载]从受欢迎角度分析哪些美国主流网站使用了哪些JS框架
  6. 如何用计算机进行绘画,如何在电脑上画画
  7. 国内很少人知道的潜力币——MOBI
  8. 万字篇:2020Android面经,历时一个半月,斩获3个大厂offer(京东、新浪、滴滴)
  9. 传实缴注册资本要5亿,那些想上市的P2P平台顶得住吗?
  10. ADS解决xxxis an undefined model