A. c语言中如何对浮点数进行四舍五入
C语言中对于浮点数输出的四舍五入是自动进行的。在浮点数的有效位数范围内,当要求保留小数点后n位时,系统会自动根据第n+1的值自动进行四舍五入操作。以下代码可以验证:
//#include"stdafx.h"//Ifthevc++6.0,withthisline.
#include"stdio.h"
intmain(void){
doublepi=3.141592653589793;
printf("%.15f ",pi);
printf("%.3f ",pi);//保留3位小数,因第4位是5而进位
printf("%.5f ",pi);//保留5位小数,因第6位是2而舍弃
return0;
}
输出是:
3.141592653589793
3.142
3.14159
B. 在C语言中,相除后取整的时候,我记得有些需要四舍五入,有些直接取整数部分,分别是哪些情况
到底需要四舍五入还是直接取整不是程序说了算了,是根据实际情况说了算的
这个要看你需要的结果了
比如说
double x;
printf("%d",int(x)) 取整
printf("%d",int(x+0.5)) 四舍五入
C. C语言中 两个整形相除是不是自动四舍五入
所谓的整形,就是取整数部分。
如果a=3.98,则 int a=3。a=58.49,则 int a=58。取整只看整数部分取值,而不是四舍五入。
C语言中,一般而言整型数是双字节,所以:
有符号型:最大32767,最小 -32768
无符号型:内最大 65535,最小 0
但对于C++,面对32位机时,整型容数变成了双字,所以:
有符号型:最大 2147483647,最小 -2147483648
无符号型:最大 4294967295,最小 0
(3)c语言除法浮点不四舍五入扩展阅读:
c语言中长整型常量的数值范围最小是十进制的-2147483647~+2147483647,在计算机中最少占用4个字节。字节长度跟操作系统和编译器抄有关,longint长度至少32位,而64位类Unix系统为64位。
c语言中整型常量是通常的整数,包括正整数、负整数和0,其数据类袭型显然是整型。整型常量内存大小和数值范围取决于编译器。
D. c语言的四舍五入问题,printf输出时什么情况四舍五入,什么情况不四舍五入
printf在输出浮点数的时候都是四舍五入的.
要想不四舍五入, 需要自己做处理的.
PS:部分系统使用的不是四舍五入 而是四舍六入五成双
E. 在C语言中如何不四舍五入保留小数
如果你是单纯为了把这个数打印出来,那么用%2f就可以了。
但是如果你要在程序中做运算的时候希望能够不四舍五入地保留小数,
那下面的方法可以做到。
#include
<math.h>
main()
{
int
k
=
3;
double
number
=
655.12345;
number
=
(int)(number)
+
((int)((number-(int)(number))*pow(10.0,k)))/pow(10.0,k);
printf("%f\n",number);
getch();
}
F. C语言中什么运算只取整数部分,什么时候不但取整,还要四舍五入 发现C语言中很多时候不用四舍五入
取整要看类型的自动转换了,,比如a和b都是整形数据,那么a/b的结果就一定是整形。结果就取整数部分,如果其中有一个是浮点型,那么结果就是浮点型,但是不会四舍五入,如果需要四舍五入那么应该写成a/b+0.5.自动转换的顺序是char,short,int,float,double,越往后优先级越高
G. c语言为什么float类型有时候不四舍五入
浮点数保留小数点后的数据,有时会自动四舍五入,有时不会自动四舍五入。但是…
如果把一个浮点数赋给一个整数变量后,一定不会四舍五入。
所以,我们在保留浮点数的小数点精度时,必须要人工处理四舍五入。
你可以多找几组数据试试,
H. c语言四舍五入是怎样的
全舍不入
需要实现四舍五入的时候就要使用double或者float类型的数进行运算然后if判断
http://..com/question/68502540.html刚好有个类似的问题
I. c语言中将一个浮点型赋值给整型时,会不会四舍五入
c语言中将一个浮点型赋值给整型时,不会四舍五入,会直接舍去小数部分的数据,也可以认为是执行了下取整运算。
将浮点数(单双精度)转换为整数时,将舍弃浮点数的小数部分, 只保留整数部分。将整型值赋给浮点型变量,数值不变,只将形式改为浮点形式, 即小数点后带若干个0。注意:赋值时的类型转换实际上是强制的。
例如执行赋值后,无论5.4还是5.6都会变成5。
(9)c语言除法浮点不四舍五入扩展阅读:
C语言中其它数据类型的转换:
1、单、双精度浮点型
由于C语言中的浮点值总是用双精度表示的,所以float 型数据只是在尾部加0延长为double型数据参加运算,然后直接赋值。double型数据转换为float型时,通过截尾数来实现,截断前要进行四舍五入操作。
2、char型与int型
int型数值赋给char型变量时,只保留其最低8位,高位部分舍弃。
char型数值赋给int型变量时, 一些编译程序不管其值大小都作正数处理,而另一些编译程序在转换时,若char型数据值大于127,就作为负数处理。
3、int型与long型
long型数据赋给int型变量时,将低16位值送给int型变量,而将高16 位截断舍弃。(这里假定int型占两个字节)。 将int型数据送给long型变量时,其外部值保持不变,而内部形式有所改变。
J. C语言 除法
#include <stdio.h>
void main()
{
printf("%f\n",4.0/16);
}
如果是以上这样的话,结果是0.250000
因为float是精确到小数点后6位的.所以在不加限制的情况下是0.25000
如果是
#include <stdio.h>
void main()
{
printf("%d\n",4.0/16);
}
那么结果是0.因数4除16等于0.25小于1舍去.就变成0了.(在这里C语言没有四舍五入,一律舍!)
不知道是不是你想要的答案?