c语言中%f与%lf有什么区别?

[复制链接]
查看11 | 回复5 | 2019-11-19 11:44:39 | 显示全部楼层 |阅读模式
%lf\n和%f\n的区别为:输入不同、输出不同、精度损失不同。一、输入不同1、%lf\n:%lf\n输入数据时要求是float类型。2、%f\n:%f\n输入数据时要求是double类型。二、输出不同1、%lf\n:double类型以%lf\n格式输出数据时不会自动转成%lf\n格式,会导致输入值错误。2、%f\n:float类型以%f\n格式输出数据时会自动转成%f\n格式,不会导致输入值错误。三、精度损失不同1、%lf\n:单精度数据使用%lf\n格式会造成精度损失。2、%f\n:双精度数...
回复

使用道具 举报

千问 | 2019-11-19 11:44:39 | 显示全部楼层
%f和%lf分别是float类型和double类型用于格式化输入输出时对应的格式符号。其中:float,单精度浮点型,对应%f.double,双精度浮点型,对应%lf.在用于输出时:float类型可以使用%lf格式,但不会有任何好处。double类型如果使用了%f格式可能会导致输出错误。在用于输入时:double 类型...
回复

使用道具 举报

千问 | 2019-11-19 11:44:39 | 显示全部楼层
当然有区别%lf匹配 double%f匹配 float你这样使用当然相同,一般输出时不会有什么区别,因为float的精度已经很高了,实际中很难用到float无法表示的数,但是一般从命令窗口或者从文件中读取数据时就会有问题!如果数据是double型的,那么你scanf函数中必须用%lf给你举个例子吧:#include "stdio.h"void main(...
回复

使用道具 举报

千问 | 2019-11-19 11:44:39 | 显示全部楼层
%f是单精度浮点型,输出的时候要满足6位小数。 %lf就是输出数值总长度为L,整数个数加小数个数,不足补空,右顶格起 %f和%lf对scanf来说有差别,%f用于float,%lf用于double 在printf中,%f用于float和double,因为float会自动转为double,另外,%lf对于printf在C89标准中无定义...
回复

使用道具 举报

千问 | 2019-11-19 11:44:39 | 显示全部楼层
没有什么太大区别,就是在输入数据的时候 ,如果是%f%f,那么输入的两个数据之间可以是空格、Tab键和回车;如果是%f,%f,那么输入的两个数据之间必须用逗号隔开,这是因为在前面的%f,%f里规定了它的输入格式是逗号分隔。...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行