本文目录一览:
- 1、c语言中,长整形long可以和浮点形float一起定义吗?0.03用整形怎么表示?小数都要用浮点形。
- 2、C语言在什么情况下需要编译器以long类型储存一个小数字
- 3、C语言 e+=1.0/s为什么1要加小数才行?
- 4、C语言如何在很多数中加一个小数点
c语言中,长整形long可以和浮点形float一起定义吗?0.03用整形怎么表示?小数都要用浮点形。
一般来说,long和float不能一起定义。
0.03如果定义为整型变量,会取整。例如定义int i=0.03,实际上i的值会是0。
小数的表示都用浮点。
C语言在什么情况下需要编译器以long类型储存一个小数字
当表示常数时, 如果不带小数点, 也不是带e的科学计数法表示, 而只是纯数字, 那么系统默认是int型.
这样要表示long范围内的数字就可能出错.
比如 在16位编译器下, 如果long a=65537; 那么 实际上a会被赋值为1,因为已经超出了16位int的范围. 这时要正确结果就必须 long a = 65537L;
不过 对于常见的32位编译器, long和int都是32位 就不需要这样做了.
C语言 e+=1.0/s为什么1要加小数才行?
C语言中,如果运算的两个数,数据类型不同,那么精度低的类型将自动向精度高的类型转变
比如你这个题目
如果是1/s,那么1和s都被认为是long,运算结果也为long(这是C规定的),由于long不能包含小数,所以结果是0
而如果写成1.0/s,现在1.0是float,
s是long,精度比float低,所以s自动转变成float,两个float相除,结果是float,也就是小数部分被保留下来了
C语言如何在很多数中加一个小数点
利用整数的截断效果,将数据小数部分单取出来,乘以10后取整,与原数比较,若不等,则判断大于小数点后1位,依此计算直到相等为止。
在取整时进行小数点后1位四舍五入可部分防止二进制浮点数与真实数据间的舍入误差问题。