C语言 关于float 和 double 输入时 如果是float必须用%f double必须用%lf这样对么 但是输出时有问题
作者&投稿:巫福 (若有异议请与网页底部的电邮联系)
意思是说只有输入时每个函数都有个格式比如:float对应f% double对应%lf long int对应%ld short int对应%hd 无符整型对应%u .... 而输出是只分整型和浮点型 是这样吗
因为格式化输入scanf要求数据类型和输入格式对应,你只要把scanf里面的%f改为%lf,double不用改,就正常了。
还有输出时候不管float和double,都用%f,因为C语言里面就是这么定义的,输出时候统一了,但是如果输出用%lf,大多数编译器也能正常输出。
输出float 用 %f, double 可以用 %lf, 也可以用 %f, 这将按默认 定点格式输出。没给 场宽和小数位数 时 按 默认位数输出。
若给了 场宽和小数位数 时 按 给定的 输出,若给的宽度不足时,按实际需要的场宽输出。float 有效数字为6-7位,double有效数字 14位。
%.16lf -- 输出 double,小数点下 16位。
%20.10lf -- 输出 double,小数点下 10位, 场宽20位.
1、输出时也应该用%lf,用%f不会报错,但是精度会降低
2、默认是小数点后保留6位,但是可以控制输出的位数
3、输出时改成%.16lf能输出16位双精度浮点型
如有不懂欢迎追问!
赖纪消栓: 实数的意思,float是C语言中的一个数据类型的关键字,表示单精度浮点型(双精度浮点型为double). float是C语言的基本数据类型中的一种,表示单精度浮点数,C语言规定单精度浮点型在内存占用4个字节,精度为7位,取值范围为:3.4*10...
定远县19469311325: C语言:float,double,long doubie 问题 - ?
赖纪消栓: float 指实数,知道什么是实数撒 例如 3.14159;double 指双精度实数,计算机有16位 32位的,你定义一个float型变量系统会给你分配4(不同的计算机分给变量的位不同)位作为存储数据用,而double是float 的二倍 long double则是double 的2倍(不过一般最多用到double现在计算机就算你给定义一个long double系统也是给你分配8位的).
定远县19469311325: C语言自学中,想问问float是什么意思?%f,%d这又是什么意思? - ?
赖纪消栓: float是c语言中的一个数据类型,它属于浮点型数据类型.%f是输出浮点数时指定的格式符 %d是输出整数时指定的格式符你不懂的话可以查找相关的书籍学习或者到课课家教育网,也有相关的内容,让你从基础学起的
定远县19469311325: C语言中float是什么意思 - ?
赖纪消栓: C语言中float浮点型数据类型,FLOAT 数据类型用于存储单精度浮点数或双精度浮点数.浮点数使用 IEEE(电气和电子工程师协会)格式.浮点类型的单精度值具有 4 个字节,包括一个符号位、一个8 位 excess-127 二进制指数和一个 23 位尾...
定远县19469311325: C语言中float double的用法是什么 - ?
赖纪消栓: float f,c;//这里改成double 结果出错, 因为你下面scanf中用的是%f,double应该是%lfscanf("%f",&f);c=(5.0/9)*(f-32);//这里的5.0改成5 结果也出错 但其它的9与32又不用变9.0和32.0呢? 因为你的 f 是浮点型,所以,计算 f - 32时就会,将32自动转型为浮点型 而5与9任意变其中一个为浮点型都可以,如5.0/9或5/9.0,结果都是浮点型(另一个自动转型 ) 但是5/9,不行,因为整数相除,取整,结果就为0了.
定远县19469311325: C语言中的double和float - ?
赖纪消栓: double与float的区别在于在内存中存放数据时占用的内存不一样,前者8字节,后者4字节,也就是前者保存的小数位数比后者多一倍.举例说明对于1.9999996666,按照float输出,结果可能为1.999999,如果按照double可能为1.999999,这是为什么,因为C语言默认输出小数位数都取6位,这时候看起来没有区别,但是如果你进行格式控制,比如使用%.10,即小数保留10位,float输出结果为1.9999990000,而double输出结果则为1.9999996666.
定远县19469311325: C语言中, float的读音? - ?
赖纪消栓: 拼音:fu lou te
定远县19469311325: c语言的FLOAT 跟double的区别 - ?
赖纪消栓: float的有效数字是6-7位,也就是说float精确到小数点6-7位;而double的有效数字是15-16位,也就是说float精确到小数点15-16位 我们计算一些数学题 比如计算地球到月球的距离什么的等等 就可能要精确到10十几位,那时候就要用到double了;有时比较程序的大小也有可能要用到 double 由于float和double功能都一样 但double的用范围更广 所以避免出错 建议用double
定远县19469311325: c语言float类型输出 - ?
赖纪消栓: 应该是float中的存储的数值转为二进制码时导致的缘故,如果只是输出,那么可以将%f改为%.1f(输出只输出小数点后一位.)
定远县19469311325: C语言的double与float类型最多只能默认输出小数位数都取6位? - ?
赖纪消栓: float 为单精度,有效数字为6~7double 为双精度,有效数字为15~16 但他们在输出时,小数点后都有6位小数.例如3.123456 但是在格式化输出时例外.如: main() { int a=15; float b=123.1234567; double c=12345678.1234567; char d='p'; printf...