小数点分为整数部分和小数部分,它们之间用点分隔. 例如,0.0、75.0、4.023、0.27,-937.198 -0.27等都是合法的小数. 这是最常见的小数形式. 这称为十进制形式.

此外,十进制数也可以采用指数形式,例如7.25×102、0.0368×105、100.22×10-2,-27.36×10-3等. 任何十进制数字都可以用指数形式表示.

C语言支持两种十进制形式. 但是在撰写本文时,C语言的指数形式不同于数学形式.

C语言中小数的指数形式为:

aEn或aen

a是尾数部分,是十进制数字; n为指数部分,为十进制整数; E或e是用于分隔尾数部分和指数部分的固定字符. 整个表达式等于a×10n.

指数形式的小数示例:

在C语言中,通常使用两种类型的小数,即float或double. float被称为单精度浮点类型,double被称为双精度浮点类型.

与整数不同,小数没有太多的飞蛾,小数的长度是固定的,浮点数始终占用4个字节,双精度数始终占用8个字节. 十进制输出小数也可以使用printf函数输出,包括十进制形式和指数形式,其对应的格式控制字符为:

以下代码演示了小数的表示形式和输出:

#include

#include

int main()

{

float a = 0.302;

float b = 128.101;

double c = 123;

float d = 112.64E3;

double e = 0.7623e-2;

float f = 1.23002398;

printf("a=%e \nb=%f \nc=%lf \nd=%lE \ne=%lf \nf=%f\n", a, b, c, d, e, f);

return 0;

}

运行结果:

a = 3.020000e-01

b = 128.100998

c = 123.000000

d = 1.126400E + 05

e = 0.007623

f = 1.230024

代码说明:

1)默认情况下,%f和%lf保留六个小数位. 少于6位数字用0填充,多于6位数字被舍入.

2)将整数分配给float变量时,它变为小数.

3)以指数形式输出小数时,输出结果为科学计数法;也就是说,尾数部分的值是: 0≤尾数<10.

4)b的输出结果令人困惑,只有小数点后三位,为什么不能准确输出,但输出一个近似值?这与内存中小数的存储形式有关. 许多简单的小数位数无法准确存储,因此无法准确输出. 我们将在下一节“如何将小数存储在内存中,揭示诺贝尔奖级别的设计(详细地讲,请详细解释).

此外,还有一种更智能的输出小数的方式,即使用%g. %g比较小数的十进制和指数形式,并以最短的方式输出小数,以使输出更简洁. 所谓的最短字符是输出最少的字符.

%g用法示例:

#include

#include

int main()

{

float a = 0.00001;

float b = 30000000;

float c = 12.84;

float d = 1.229338455;

printf("a=%g \nb=%g \nc=%g \nd=%g\n", a, b, c, d);

return 0;

}

运行结果:

a = 1e-05

b = 3e + 07

c = 12.84

d = 1.22934

每个小数点的分析:

读者应注意的两点是:

简而言之,%g应该以最短的方式输出小数,并且小数部分的行为自然,不加零c语言 float范围,并且比%f和%e更灵活,这在大多数情况下都符合用户习惯

除%g外,还有%lg,%G,%lG: 后缀为数字的数字有默认类型: 对于整数,默认为int类型;对于整数,默认为int类型. 对于小数,默认为双精度类型.

请参见以下示例:

long a = 100;

int b = 294;

float x = 52.55;

double y = 18.6;

两个数字100和294默认情况下为int类型. 将a分配为100时,您必须先将int转换为long,而不必将294转换为b.

默认情况下,两个数字52.55和18.6的类型为double. 要将52.55分配给x,您必须先将double转换为float,然后将18.6分配给y而不进行转换.

如果您不希望数字使用默认类型,则可以在数字后缀后手动指定类型:

请参见以下代码:

long a = 100l;

int b = 294;

short c = 32L;

float x = 52.55f;

double y = 18.6F;

float z = 0.02;

添加后缀. 尽管数字的类型已更改,但这并不意味着只能将数字分配给指定的类型. 只要执行类型转换,它仍然可以分配给其他类型.

对于初学者来说,很少使用数字后缀. 无论是否添加它c语言 float范围,通常都相同,也不会影响实际编程,但是由于您已经学习了C语言,因此您仍然需要了解这一知识点. 代码是通过这种方式使用的,但是您不知道发生了什么,这很尴尬. 关于数据类型的转换,我们将在“ C语言数据类型转换”部分中深入讨论. 互相分配小数和整数在C中,可以互相分配整数和小数:

请参见以下代码:

#include

int main(){

float f = 251;

int w = 19.427;

int x = 92.78;

int y = 0.52;

int z = -87.27;

printf("f = %f, w = %d, x = %d, y = %d, z = %d\n", f, w, x, y, z);

return 0;

}

运行结果:

f = 251.000000,w = 19,x = 92,y = 0,z = -87

由于将十进制数分配给整数类型将被“扭曲”,因此编译器通常会发出警告以引起您的注意.

本文来自电脑杂谈,转载请注明本文网址:

http://www.pc-fly.com/a/jisuanjixue/article-176452-1.html

c语言双精度浮点数,使用C语言的十进制(浮点数,双精度)相关推荐

  1. AIIC学习日记-十进制浮点数预处理为二进制定点数

    文章目录 背景 任务 浮点数是什么 这里用的是定点数,咳咳 netron导出的卷积核数据处理为一列数据 预处理浮点数的代码 十进制浮点数预处理为二进制定点数 补码+原码=2^n 十进制浮点数预处理为二 ...

  2. c语言如何将字母转换成实数,c语言atof函数如何将字符串转换成浮点数实例

    c语言atof函数如何将字符串转换成浮点数实例?引入头文件:#include 定义atof函数:double atof(const char *nptr); atof函数使用介绍:atof()会扫描参 ...

  3. C语言十进制浮点数,十进制浮点数的表示方法

    使用十进制浮点数,可以避免二进制浮点数与我们习惯的十进制数之间的表示误差.这个在金融领域是非常重要的.但是计算机基本都只能对二进制浮点数进行计算,也就是IEEE754格式表示的浮点数.很多程序都会自己 ...

  4. c语言单精度比大小,c语言单精度和双精度的区别.pdf

    c 语言单精度和双精度的区别 c 语言单精度和双精度的区别单精度是这样的格式, 1 位符号, 8 位指数, 23 位小数. 双精度是 1 位符号, 11 位指数, 52 位小数. 区别就是它所能存储的 ...

  5. c语言 字母 八进制表示'/1011',C语言C语言第一课:C语言概述为什么学习C语言怎样学习C语言.DOC...

    [摘要]C语言 第一课: C语言概述 为什么学习C语言 怎样学习C语言 参考资料 ----------------------------------------------------------- ...

  6. c语言变量加常量,C语言(二)---常量与变量(示例代码)

    一.进制 1.1 二进制 1.1 简介 二进制数据是用0和1两个数码来表示的数.它的基数是2,进位规则是"逢二进1",借位规则是"借一当二".当前的计算机系统使 ...

  7. C语言数据类型 / 变量类型 - C语言零基础入门教程

    目录 一.C 语言数据类型分类 二.C 语言整形 1.无符号整形(16 位系统) 2.有符号整形(16 位系统) 3.int 和 long 区别 4.超出取值范围的整形 三.C 语言浮点型 float ...

  8. c语言printf清屏,C语言入门 — printf 使用方法

    本章节讲如何使用printf打印不同形式的内容,printf是c语言里常用的打印接口,也是c标准函数库,使用时需要#include ,下面讲讲如何使用printf: 一.printf 的基础知识: 1 ...

  9. c语言函数官网,c语言函数

    c语言函数[编辑] 概述 c语言函数包括多种函数.它的出现方便了人们对很多数据的计算,节省了大量的时间,方便了人们的计算,为人们提供了一个简便的,时用的函数运算.也在一定的领域中有一个突破性进步,但是 ...

  10. C语言入门(初识C语言)

    C语言入门(初识C语言) 前言 什么是C语言? 为什么选择C语言? 计算机语言的发展 高级计算机语言中的经典:C语言 初识C语言(正片开始) 一.第一个C语言程序(你好,C语言) 1.1 #inclu ...

最新文章

  1. 刻意练习:LeetCode实战 -- Task13. 罗马数字转整数
  2. C#将Excel数据表导入SQL数据库的两种方法(转)
  3. zookeeper单机单独实例安装-windows
  4. 实验——LINUX常用网络测试命令
  5. 创新设计模式:抽象工厂模式
  6. js中call和apply的作用和用法
  7. python的excel库_Python-Excel 模块哪家强?
  8. Android UI之困 横跨四个屏幕的战争
  9. Callback Functions Tutorial
  10. GoF的23种设计模式之创建型模式的特点和分类
  11. 经典领导选举算法:Bully 算法
  12. QAliber - 介绍一款开源的GUI自动化测试工具
  13. JAVA ANDROID电脑开发环境配置,说多了都是泪
  14. 防火墙结构之双重宿主主机结构
  15. 模拟鼠标键盘操作,含硬件模拟技术
  16. 通过nodejs搭建HTTP服务器
  17. matlab入门精讲 【官方资料精简而来,确保全面】
  18. Redis数据类型有哪些?
  19. flutter iPhone设备型号对照表(更新到14)
  20. zcash/zcash

热门文章

  1. tekton入门-细数tekton用到的那些images
  2. Python网络爬虫之HTTP原理
  3. Python网络爬虫的概念和基本原理
  4. Anbox之构建android.img(三)
  5. Latex排版(这里有你需要的技巧)(小白专属保姆级教程)
  6. 2021东软始业教育考试
  7. FusionCharts--WEB图表技术
  8. 一文简单了解互联网流量变现
  9. tomcat配置url跳转_Tomcat
  10. 消息推送配置url(服务器地址),设置推送url接口