将浮点数四舍五入

1. 代码

 1 #include<iostream>
 2 #include<stdio.h>
 3 #include<cmath>
 4 using namespace std;
 5 //将一个浮点数保留n位小数进行四舍五入
 6 void main()
 7 {
 8     float a=55.3252,b=55.3248;//内部a=55.32199,
 9     int bit,mtp;
10     printf("请输入你要保留的小数位数:\n");
11     scanf("%d",&bit);
12     mtp=pow((float)10,(float)bit);//注意pow函数重载问题,需要类型匹配,转化为float或double
13     float a1=(a*mtp+0.5)/(float)mtp;
14     float a2=(int)(a*mtp+0.5)/(float)mtp;//被除数转化为int型,除数转化为float型
15     float b1=(b*mtp+0.5)/(float)mtp;
16     float b2=(int)(b*mtp+0.5)/(float)mtp;
17     printf("a1=%f    a2=%f    b1=%f    b2=%f\n",a1,a2,b1,b2);
18     if(bit==2)
19     printf("a1=%.2f    a2=%.2f    b1=%.2f    b2=%.2f\n",a1,a2,b1,b2);
20     else if(bit==3)
21     printf("a1=%.3f    a2=%.3f    b1=%.3f    b2=%.3f\n",a1,a2,b1,b2);
22     system("pause");
23 }    

2. 运行结果

时间: 2024-08-14 19:19:26

将浮点数四舍五入的相关文章

Python 中浮点数四舍五入的问题

一. 问题 昨天遇到一个问题,在 6.6045 保留三位小数时,使用 round() 函数进行计算,我们希望得到 6.605,然而: >>> round(6.6045, 3) 6.604 网上有人说,因为在计算机里面,小数是不精确的,例如 1.115 在计算机中实际上是 1.114999999999999991182,所以当你对这个小数精确到小数点后两位的时候,实际上小数点后第三位是 4,所以四舍五入,结果为 1.11. 这种说法,对了一半. 因为并不是所有的小数在计算机中都是不精确的.

浮点数四舍五入到小数点后两位

#include<stdio.h> #include<math.h> double change(double n){ return round(n * 100) / 100; } int main(){ double n; while(scanf("%lf",&n)!= EOF){ printf("%.2f",change(n)); } return 0; } 即:将浮点数乘 100,求其四舍五入整数,然后除以100,便可得到 相对

iOS 浮点数四舍五入的方法

//四舍五入 /** *  浮点型数据四舍五入 * *  @param format 保留两位小数  传入@"0.00"; *  @param floatV 字符数据 * *  @return 四舍五入保留两位后的字符串 */ +(NSString *) decimalwithFormat:(NSString *)format  floatV:(float)floatV { NSNumberFormatter *numberFormatter = [[NSNumberFormatter

float浮点数的四舍五入

瑞生网http://www.rationmcu.com版权所有 前几天,有个小伙伴在做实验过程中,发现了一个奇怪的现象,这个现象就是… 他在用printf输出浮点数的时候,想把数据保留到小数点后的两位,他是这么写的… float c=1.155;printf(“%.2f”,c); 他的书写是对的,没有错误.但是他发现,当c等于1.555时,保留两位小数输出是1.55,而当c等于3.555时,保留两位小数输出是3.56.这个结果,就让人捉摸不透了,因为… 如果是程序运算会自动四舍五入的话,结果应该

Swift - 浮点数转换成整数(四舍五入与直接截断)

1,直接截去小数部分转换成整数 使用强制转换会将浮点部分去除,把整数部分转换为整数. 1 var i = Int(23.50) //23 2,四舍五入转换成整数 lroundf是一个全局函数,作用是将浮点数四舍五入转为整数. 1 var i = lroundf(23.50) //24

double类型之四舍五入

题目: A - Tutor Time Limit:1000MS     Memory Limit:65535KB     64bit IO Format:%I64d & %I64u Submit Status Description Lilin was a student of Tonghua Normal University. She is studying at University of Chicago now. Besides studying, she worked as a tut

js 四舍五入函数

js 四舍五入函数 toFixed(),里面的参数 就是保留小数的位数. <script language="javascript"> document.write("<h1>JS保留两位小数例子</h1><br>"); var a=2.1512131231231321; document.write("原来的值:"+a+"<br>"); document.write

JS保留小数点(四舍五入、四舍六入)实例

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>floatDecimal.html</title> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta htt

四舍五入就用round( )?Python四舍五入的正确打开方式!

菜鸟教程中介绍到,round() 函数作用就是,返回浮点数x的四舍五入值. > round( x [, n] )1参数x,n均为数值表达式,返回值为x的四舍五入值.n为保留的小数位数,不加n则只保留x四舍五入后的整数部分. >>> round(2.3)2>>> round(2.45, 1)2.51234特殊情况上面的结果并没有错误,这里再用2.675测试一下: >>> round(2.675, 2)2.6712显然结果不符合四舍五入的规则.为什么