double类型的变量保留两位第三位四舍五入

问题描述
题目源于计算机二级C语言的程序设计题,做的时候有些懵,虽然说也是做出来了,但是代码写的实在不咋滴。
题目如下:输入一个double类型数据,保留两位,第三位四舍五入,由于题目需要返回值,所以不能直接打印。

1、标准答案

    double h = 0.0;long t = 0, u = 0, v = 0;double w = 0;scanf_s("%lf \n", &h);t = h * 1000;//把第三位小数提到个位上u = t + 5;//四舍五入,如果大于五就进一位,没进位就不操作v = u / 10;//截掉第个位(第三位小数)w = (double)v / 100 ;//将剩余两位原小数位转化回小数printf("w=%lf \n", w);

最后一步w的值计算,拆开来写会出现没有小数位的情况。
结果:

2、非常好理解的办法(考试这么写的,也没问题,就是时间不大够)

double function()
{int range = 0, GeWei = 0, ShiWei = 0, BaiWei = 0, QianWei = 0;//范围、个位、十位、百位、千位int SF = 0, BF = 0, QF = 0, point1 = 0, point2 = 0, point3 = 0;//SF:十分位、BF:百分位、WF:千分位//point1、2、3:小数点后三位int a[10] = { 0 };double resultNum = 0.0, h = 0.0;scanf_s("%lf", &h);GeWei = (int)h % 10;//堆十取余获得各位resultNum = h * 0.1;//把十位拉到个位上ShiWei = (int)resultNum % 10;//获得身处个位的十位值resultNum = h * 0.01;//把百位拉到个位上BaiWei = (int)resultNum % 10;//获得身处个位的百位值resultNum = h * 0.001;//把千位拉到个位上QianWei = (int)resultNum % 10;//获得身处个位的千位值resultNum = h * 10;//把十分位扩到个位上SF = (int)resultNum % 10;//获得身处个位的十分位resultNum = h * 100;//把十分位扩到个位上BF = (int)resultNum % 10;//获得身处个位的百分位resultNum = h * 1000;//把十分位扩到个位上QF = (int)resultNum % 10;//获得身处个位的千分位printf("G = %d ", GeWei);printf("S = %d ", ShiWei);printf("B = %d ", BaiWei);printf("Q = %d ", QianWei);printf("\n");printf("SF = %d ", SF);printf("BF = %d ", BF);printf("QF = %d ", QF);printf("\n");a[range] = QianWei;//把他们都写进一个数组里方便后序操作a[++range] = BaiWei;a[++range] = ShiWei;a[++range] = GeWei;a[++range] = SF;point1 = range;//三个point记录分位在数组中的下标a[++range] = BF;point2 = range;a[++range] = QF;point3 = range;for (int i = 0; i <= range; i++){printf("a[%d] = %d ", i, a[i]);}if (a[point3] >= 5){printf("入\n");a[point2] += 1;a[point3] = 0;//四舍五入}h = QianWei * 1000 + BaiWei * 100 + ShiWei * 10 + GeWei + SF * 0.1 + a[point2] * 0.01;//按权重求和输出printf("h = %lf", h);return h;
}

小数保留两位小数,第三位四舍五入相关推荐

  1. oracle查询保留小数点后三位,关于Oracle中查询的数字值的显示格式需要保留小数点后两位(或者三位,及其他位数)...

    方法一:使用to_char的fm格式,即: to_char(round(data.amount,2),'FM9999999999999999.00') as amount 不足之处是,如果数值是0的话 ...

  2. MySql 查询小数保留两位小数

    问题 :有一张表 table_a ,它有字段 c_1,c_2 都是数字类型的,现在想求一行中 c_2 字段占 c_1 字段的百分比,要求小数点后保留两位 SELECT FORMAT((a.c_2/a. ...

  3. PLC控制气缸,如何使用二位五通和三位五通控制电磁阀控制

    一.二位五通电磁阀 以下图片可以看出,在通电和不通电的情况下回两路回路通气,在不通电的情况由1-2通气,4-5排气,通电则反知.这样就可以对气缸进行控制,二位五通电磁阀原理十分简单. 以下为二位五通电 ...

  4. C# 如何实现千位分隔符(三位分隔)

    int m = 123456789; MessageBox.Show(m.ToString("N")); 如上代码,显示为:123,456,789.00,倒是实现了千位分隔,只是又 ...

  5. c语言数码管3位译码地址,三位数码管显示实验总结

    记录记录这个实验过程,由于这个实验并没有要求要提交实验工程,懒狗本人用的是老师的工程文件 模 4 计数器顶层电路图(含管脚分配的)截图+文字说明 此处管脚分配在模4计数器作为元件的顶层电路,可见输入c ...

  6. cvi中c语言只保留两位小数,保留两位小数,但要求只显示一位小数,怎么实现?...

    1.要实现的效果:在相同的时间内完成设定数值的自加: 2.目前的方案:( 设定数值 - 初始数值 )/ 预期时长 = speed,以speed为自加变量: 3.目前的困境:speed精确到小数好几位, ...

  7. javascript计算小数保留两位小数,多位小数的方法

    <SCRIPT LANGUAGE="JavaScript"> <!-- function formatFloat(src, pos) {     return M ...

  8. 保留两位小数除法算式_北师大|五年级上册|第一周周测·小数除法(1)

    北师大·五年级上册·第一周周测·小数除法(1) 一.计算题 3.6÷1.2= 0.72÷0.9= 2.6÷13= 4.8÷0.4= 4.4÷4= 0.78÷6= 7.2÷0.4= 1÷0.25= 5. ...

  9. html计算保留两位小数,5.298保留两位小数

    5.982保留一位小数约是(),保留整数约是(). 5.982保留一位小数约是(6.0): 保留整数约是(6): 百分位是8: 进位: 5.9+0.1 =6.0 3.298保留两位小数是什么答案3.2 ...

最新文章

  1. 徒手撸出一个类Flask微框架(三)根据业务进行路由分组
  2. css 填坑常用代码分享
  3. python爬虫小说代码示例-中文编程,用python编写小说网站爬虫
  4. oracle dbfile数,通过案例学调优之--Oracle参数(db_file_multiblock_read_count)
  5. easyexcel 动态列_easyexcel动态表头列导出SequenceDiagram 阅读源码事半功倍
  6. 字符数组拷贝与strcpy函数
  7. docker mysql输入中文_Docker解决终端无法输入中文的问题
  8. C#语法中String与string的区别
  9. Code Chef - Chef and Graph Queries
  10. 各种文件后缀名与打开方式
  11. 浏览器是如何渲染网页的
  12. flac编码音频转alac编码(使用ffmpeg)
  13. python3魔法方法_Python3 魔法方法详解
  14. Warshall沃舍尔算法
  15. 高并发下的Nginx优化
  16. 《宣龙教育》加密网课视频下载
  17. Xgboost算法之原理+代码
  18. 《弃子长安》第五章 杀气惊蝉
  19. 狼书三卷终大成,狼叔亲传Node神功【留言送书】
  20. 利用多线程实现的下载器,完爆迅雷!

热门文章

  1. 大数据测试数据生成工具v1.0 --百万级别一键导出TXT,JSON,MYSQL 。---HIVE专属工具
  2. USACO 2022 December Contest, BronzeProblem 1. Cow College 题解
  3. 《指弹:千与千寻:Always with me》
  4. 团队项目3.0与第六七章读后感
  5. 个人用户永久免费,可自动升级版Excel插件,使用VSTO开发,Excel催化剂功能第12波-快速生成、读取、导出条形码二维码...
  6. 我不喜欢代码,却为何坚持做程序员(二)
  7. iphone各个系列手机最新的尺寸资料(更新到iphone6s)
  8. 计算机的音量打不开,电脑静音,音量打不开.怎么办?
  9. netlink编程注意事项
  10. 山经·南山经:猨翼山 [yuán yì shān]