代码中的科学记数法

本文详细介绍了科学记数法在编程中的使用,包括如何用e或E表示指数,以及在C/C++等语言中的语法要求,强调了e不是一个运算符或关键字,而是科学记数法的表示符号。同时,区分了科学记数法中的e与数学中的自然常数e的区别。
摘要由CSDN通过智能技术生成

1、科学记数法在程序代码中的便捷书写方式

因为科学记数法的指数部分要用上标的形式表示,这种方法在纸上书写没有问题,但在电子设备中就比较麻烦了,需要将指数部分设定为上标,或者插入公式编辑器。

为了在电子设备上书写方便,常使用符号e或E来表示科学记数法,这个符号来源于exponent(指数)的首字母。

在各种编程语言中,基本上都是用e或E来表示科学记数法,例如在C语言中:

float num1 = 1.23e-4; // 表示 1.23 * 10^-4 
double num2 = 4.56e+7; // 表示 4.56 * 10^7

2、科学记数法中的e只是一个表示符号

e或E在科学记数法中并不执行任何运算操作,它们只是作为一种表示法来指示接下来的数字是指数(exponent)部分。因此,它不是运算符。

如1e3只是在代码中对10^3的表示方法,编译器内置了对这种表示法的支持,在编译时会自动把1e3转换成二进制浮点数。

e或E本身都可以定义为变量,因此也不是关键字。

标识符是标识某个实体的符号,是程序员给变量、常量、函数、语句块等起的名字。代码中可以直接将e或E定义为变量,所以e或E本身可以作为标识符。但其用于科学记数法时,只能用e或E,不能用其他字母,而从标识符的定义来看,用户拥有命名的权利,在遵守命名规则的前提下爱用什么名就用什么名,所以科学记数法中的e或E显然也不能算作标识符。

那么,科学记数法中的e或E到底是什么呢?老金查了半天也没查出个所以然来。管它是什么,只要知道能用它表示科学记数法就行了。权当它是一个科学记数法的表示符号。

3、科学记数法中的e与数学中的自然常数e的区别

科学记数法中的e与数学中的自然常数e是完全不同的概念。

1)用符号e表示科学记数法完全是为了书写方便。例如1.03乘10的8次方,可简写为“1.03e8”。在一些计算器中可以直接以这种形式输入数值。

2)自然常数e是数学中一个常数,它是一个无限不循环小数,其值约为2.71828。

自然常数e也叫欧拉数(Euler number),这可能就是用字母e命名这个常数的原因。

它在计算器中像π一样有一个单独的按键。

4、科学记数法中在代码中的语法要求

从数学角度讲,科学记数法的书写是有严格的规范的:把一个大于10的数表示成的形式(其中a大于或等于1且小于10,n是正整数)。

不过在C/C++中,并没有那么严格的规范,使用科学记数法时,其实只要记住一点即可:

e或E前面必须有数字(可以是整数,也可以是小数),否则编译器会报错。比如要表示10^-6,应写成1e-6,不能图方便写成e-6。

为什么要有这个要求呢?其实原因很简单,如果写成“e-6”,编译器会将其识别为一个表达式:变量e减6;而如果写成e6,编译器会把e6看成一个标识符,从而将其识别为一个变量。

回想一下标识符的命名规则就了然了。标识符只能由字母、数字和下划线组成,且不能以数字开头。这个“不能以数字开头”就是不能省略e前数字的奥秘所在。因为只有这样,才能彻底杜绝被错误识别为标识符的可能。

感兴趣的可以用以下程序测试一下:

#include<stdio.h>
int main(){
    double e=1, e6=2;
    printf("%f\n", 1e-6);
    printf("%f\n", 1E-6);
    printf("%f\n", e-6);
    printf("%f\n", e6);
    return 0;
}

关于e或E的语法要求,还有以下两点。不过在实际编程时无需在意,了解即可。

1)e或E后面必须是整数。1e3、1e0合法,1e3.5、1e不合法(基本上没有人会傻到用这种不合法的形式)。

2)e或E后的指数为正整数时,写不写“+”都可以。

  • 8
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

金创想

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值