C语言全面细致讲解单双精度float与double的使用方法

目录
  • 一、float与double类型介绍
  • 二、例题
  • 三、总结

一、float与double类型介绍

代码:

#include <stdio.h>
int main (void)
{
	float a=3.14159261111; //单精度浮点型
	double b=3.14159261111; //双精度浮点型
	printf("数值1:%f\n",a);  // 单精度符号%f ,默认保留六位小数
	printf("数值2:%.2f\n",a); // %.2f 保留两位小数
	printf("数值3:%.4f\n",a);// %.4f 保留四位小数
	printf("数值4:%lf\n",b);// 单精度符号%f ,默认保留六位小数
	printf("数值5:%.8lf\n",b);// %.4f 保留八位小数
	return 0;
}

解释:

1、“double 和 float 的区别是double精度高,有效数字16位,float精度7位(可提供7位或8位有效数字,构成包括符号位、指数位和尾数位)。”

float 超过8位就会乱,错误显示如下

2、开始我们定义一个单精度a,双精度b。

3、然后我们开始输出他们后面的小数,%f 单精度,%lf双精度,两者默认型都是保留6位小数。

4、单精度输出:%.2f ,中间数字是保留几位小数的意思,最好不要超过6.

5、双精度输出:%.8lf,中间数字是保留几位小数的意思,最好不要超过14.

结果:

二、例题

求圆的周长与面积并保留两位小数

代码:

#include <stdio.h>
int main (void)
{
	float pai=3.14; // 定义Π的大小
	float r;  // 定义圆的半径
	float l;  // 定义圆的周长
	float s;  // 定义圆的面积
	printf("请输入圆的半径r:");
	scanf("%f",&r); // 输入圆的半径为多
	s=r*r*pai; // 圆的面积求法
	l=2*r*pai; //圆的周长求法
	printf("圆的面积为:%.2f\n圆的周长为:%.2f\n",s,l);//输出圆的面积和周长
	return 0;
}

解释:

1、开始定义圆的的半径,周长,面积。

2、用键盘输入圆的半径。scanf("%f",&r) &r不要忘记加进去哈。

3、求圆的周长公式,面积公式。s=r*r*pai; l=2*r*pai;

4、printf("圆的面积为:%.2f\n圆的周长为:%.2f\n",s,l);最后输出结果是需要保留两位小数,别忘记加%.2f

结果:

三、总结

1、float与double都是浮点型,但是他们的精度不一样,需要分清楚。

2、float与double不能同时定义一个变量。

错误示范

到此这篇关于C语言全面细致讲解单双精度float与double的使用方法的文章就介绍到这了,更多相关C语言float与double内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • C语言double和float 实例分析

    小数也称实数或浮点数.例如,0.0.75.0.4.023.0.27.-937.198 都是合法的小数.这是常见的小数的表现形式,称为十进制形式. 除了十进制形式,也可以采用指数形式,例如 7.25×102.0.0368×105.100.22×10-2 等.任何小数都可以用指数形式来表示. C语言中的小数也有这两种表示形式.在书写时,十进制形式和数学中的一样,指数形式有所差异. 在C语言中小数的指数形式为: aEn 或 aen a 为尾数部分,是一个十进制数,n 为指数部分,是一个十进制整数,E或

  • C语言实现将double/float 转为字符串(带自定义精度)

    目录 将double/float转为字符串(带自定义精度) 需用到头文件有 简单用法 float和double精度问题 double和float的区别 float和double的精度 将double/float转为字符串(带自定义精度) char *double_to_string(double d, int decimal) { decimal = decimal < 0 ? 0 : decimal; char *p; char dd[20]; switch (decimal) { case

  • C语言全面细致讲解单双精度float与double的使用方法

    目录 一.float与double类型介绍 二.例题 三.总结 一.float与double类型介绍 代码: #include <stdio.h> int main (void) { float a=3.14159261111; //单精度浮点型 double b=3.14159261111; //双精度浮点型 printf("数值1:%f\n",a); // 单精度符号%f ,默认保留六位小数 printf("数值2:%.2f\n",a); // %.

  • C语言全面细致讲解文件操作

    目录 什么是文件 程序文件 数据文件 文件名 文件指针 文件的打开和关闭 文件的顺序读写 字符输入输出函数 字符串输入输出函数(fgets,fputs) 格式化输入输出函数(fscanf,fprintf) 二进制输入输出函数(fread,fwrite) 文件的随机读写 fseek ftell 文件读取结束的判定 什么是文件 磁盘上的文件是文件.但是在程序设计中,我们一般谈的文件有两种:程序文件.数据文件(从文件功能的角度来分类的). 程序文件 包括源程序文件(后缀为.c),目标文件(window

  • C语言数据结构实例讲解单链表的实现

    目录 1.单链表 2.单链表的实现 头文件 函数的实现 (1)打印链表 (2)动态申请结点 (3)尾插 (4)头插 (5)尾删 (6)头删 (7)查找 (8)在pos之前插入 (9)删除pos (10)在pos之后插入 (11)在pos后删除 (12)最后用完记得销毁 3.各功能的测试 这里我们来简单实现单链表的增删查找. 1.单链表 概念:链表是一种物理存储结构上非连续.非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的 . (链表和我们生活中最接近的就是火车了.) 2.单链

  • C语言深入细致讲解动态内存管理

    目录 为什么存在动态内存管理 动态内存函数的介绍 malloc free calloc realloc 常见的动态内存错误 对NULL指针的解引用操作 对动态开辟空间的越界访问 对非动态开辟内存使用free访问 使用free 释放一块动态开辟内存的一部分 对一块动态内存多次释放 对动态内存开辟忘记释放 柔性数组 小结 为什么存在动态内存管理 我们已经掌握的内存开辟方式有: int val = 20;//在栈空间上开辟四个字节 char arr[10] = { 0 };//在栈空间上开辟10个字节

  • Django细致讲解多对多使用through自定义中间表方法

    目录 多对多中间表详解 默认中间表 通过through自定义中间表 多对多中间表详解 我们都知道对于ManyToMany字段,Django采用的是第三张中间表的方式.通过这第三张表,来关联ManyToMany的双方.下面我们根据一个具体的例子,详细解说中间表的使用. 默认中间表 class Person(models.Model): name = models.CharField(max_length=128) def __str__(self): return self.name class

  • C语言实题讲解快速掌握单链表下

    目录 1.移除链表元素 2.反转链表 3.链表的中间节点 4.链表中倒数第k个节点 5.合并两个有序链表 6.链表分割 1.移除链表元素 链接直达: 移除链表元素 题目: 思路: 此题要综合考虑多种情况,常规情况就如同示例1,有多个节点,并且val不连续,但是非常规呢?当val连续呢?当头部就是val呢?所以要分类讨论 常规情况: 需要定义两个指针prev和cur,cur指向第一个数据,prev指向cur的前一个.依次遍历cur指向的数据是否为val,若是,则把prev的下一个节点指向cur的下

  • C语言实题讲解快速掌握单链表上

    目录 1.移除链表元素 2.反转链表 3.链表的中间节点 4.链表中倒数第k个节点 5.合并两个有序链表 6.链表分割 1.移除链表元素 链接直达: 移除链表元素 题目: 思路: 此题要综合考虑多种情况,常规情况就如同示例1,有多个节点,并且val不连续,但是非常规呢?当val连续呢?当头部就是val呢?所以要分类讨论 常规情况: 需要定义两个指针prev和cur,cur指向第一个数据,prev指向cur的前一个.依次遍历cur指向的数据是否为val,若是,则把prev的下一个节点指向cur的下

  • C语言细致讲解线程同步的集中方式

    目录 互斥锁 条件变量 信号量 读写锁 互斥锁 使用互斥量完成对临界区的资源的加锁操作,使得同一时刻,对一个共享数据的使用只能又一个线程完成 例向屏幕上一次打印abcd四个字母 可以使用的是一个类似锁连的思想 a 加完解开后拿b锁依次类推 #define THRNUM 4 static pthread_mutex_t mut[4]; static int next(int n) { if(n + 1 == THRNUM) return 0; return n+1; } static void*

  • 适合初学者的C语言数据类型的讲解

    之前说过写代码是为了解决生活中的问题,比如购物. 假设我们要买一本书,它的价格是10.5,是个小数,也可以是一个整数10,它的书名是钢铁是怎样炼成的,是一组字符串,就像svli@gikvw这些,里面每个称为字符. 我们要去用c语言来去存储这些信息呢,在c语言里面为了能够描述这些类型. 就把小数抽象出来一个数据类型,叫浮点型 把整数抽象出来一个数据类型,叫整型(就是上一个博客里面的int) 把字符抽象出来一个数据类型,就叫字符 10.5 -  小数  -  浮点型 10   -  整数  -  整

  • C语言超详细讲解指针的使用

    目录 指针概述 自身类型 指向类型 代码例子 数值型指针 字符型指针 单字符 字符数组 字符串型指针 字符数组总结 指针概述 C语言中指针也可以认为是一种类型,不同于数值型和字符型的类型.推演过去指针变量也就是相当于不同的变量类型,不同于数值变量.字符型变量.字符串变量. 指针变量两种类型:自身类型和指向的类型 自身类型:将变量名去掉,剩下的就是指针变量类型. 指向类型:将变量名和离它最近的一个*去掉,剩下的类型就是指针指向的类型 int num = 10; int* p = NULL; p =

随机推荐