实数和浮点数一样吗?
Real numbers is the same as a floating-point numbers?
浮点数据类型有时被误称为实数(让人联想到数学实数),在一次编程讲座中,我的教授在他的演讲中将实数视为可以与浮点数互换,我想知道在数学上是否编程中的实数是同一种实数吗?这让我很困惑。
Diagram of real numbers with their numerical data types.
简而言之没有.
每个浮点数都是实数,但不是每个实数都是浮点数,例如没有等于pi.
的浮点数
事实上,浮点数与有理数的关系比与实数的关系更大,但将它们视为实数只是一种有用的数学抽象。
数学数字类型通常没有到编程语言中数据类型的精确映射。
在数学中我们有有理数和无理数(我忽略了复数,因为它们只是一对有理数 and/or 无理数)。整数是有理数的子集(其中分子是分母的精确倍数)。
计算机将整数作为自然数据类型,一些编程语言具有内置的有理数类型或用于操作它们的库。
无理数(在计算机科学中通常称为“实数”,尽管在数学中实数包括有理数),但无法在计算机中准确表示。根据定义,没有有限的数字表示。所以任何数字表示都必须只是一个近似值。
浮点数是一种有效表示和计算大范围数字的有效方法。所以当你有一个需要处理实数的算法时,这通常是选择的方法。出于这个原因,“实数”有时被用作“浮点数”的同义词。例如,Fortran 和 PL/I 在声明浮点变量时使用关键字 REAL
。但是这个术语已经失宠,大多数其他语言使用更准确的关键字float
; C 也有 double
用于双精度浮点(在大多数现代语言中,例如 Python,唯一支持的浮点格式是双精度,但 C 已经足够老了,默认为单精度精度)。
浮点数据类型有时被误称为实数(让人联想到数学实数),在一次编程讲座中,我的教授在他的演讲中将实数视为可以与浮点数互换,我想知道在数学上是否编程中的实数是同一种实数吗?这让我很困惑。
Diagram of real numbers with their numerical data types.
简而言之没有.
每个浮点数都是实数,但不是每个实数都是浮点数,例如没有等于pi.
的浮点数事实上,浮点数与有理数的关系比与实数的关系更大,但将它们视为实数只是一种有用的数学抽象。
数学数字类型通常没有到编程语言中数据类型的精确映射。
在数学中我们有有理数和无理数(我忽略了复数,因为它们只是一对有理数 and/or 无理数)。整数是有理数的子集(其中分子是分母的精确倍数)。
计算机将整数作为自然数据类型,一些编程语言具有内置的有理数类型或用于操作它们的库。
无理数(在计算机科学中通常称为“实数”,尽管在数学中实数包括有理数),但无法在计算机中准确表示。根据定义,没有有限的数字表示。所以任何数字表示都必须只是一个近似值。
浮点数是一种有效表示和计算大范围数字的有效方法。所以当你有一个需要处理实数的算法时,这通常是选择的方法。出于这个原因,“实数”有时被用作“浮点数”的同义词。例如,Fortran 和 PL/I 在声明浮点变量时使用关键字 REAL
。但是这个术语已经失宠,大多数其他语言使用更准确的关键字float
; C 也有 double
用于双精度浮点(在大多数现代语言中,例如 Python,唯一支持的浮点格式是双精度,但 C 已经足够老了,默认为单精度精度)。