浮点数范围有多大
在写程序或者处理数据时,经常会遇到小数。比如计算身高、温度、价格,这些都不是整数。计算机用一种叫“浮点数”的方式来表示这些带小数的数字。那它到底能表示多大或多小的数呢?
常见的浮点数类型有两种:单精度(float)和双精度(double)。它们遵循 IEEE 754 标准,这是全球通用的规范。
单精度浮点数(float)
占 4 个字节(32 位),能表示的大致范围是 ±3.4×10³⁸,最小能表示接近 1.4×10⁻⁴⁵ 的正数。有效数字大约有 7 位。
举个例子,如果你在做一个小游戏,记录玩家得分是 987654.3,用 float 存没问题。但要是你写的是科学计算,要算原子质量这种极小的值,float 可能就不够用了。
双精度浮点数(double)
占 8 个字节(64 位),范围扩大到 ±1.8×10³⁰⁸,最小正数约 4.9×10⁻³²⁴,有效数字有 15 到 17 位。日常开发中,像 Python 的 float 类型其实就是 double。
比如你在做金融系统,要算一笔贷款的利息,精确到小数点后很多位,double 就比 float 更可靠。
代码里长啥样
在 C 语言中声明浮点数:
float f = 3.1415926f; // 单精度,后面加 f
double d = 3.141592653589793; // 双精度JavaScript 中所有数字都是 double 精度,不需要区分,写起来简单,但也容易忽略精度问题。
别被“无限”骗了
虽然浮点数能表示极大极小的数,但它不是连续的。中间有很多“空隙”,尤其是越大的数,相邻两个可表示的浮点数之间差距越大。
就像手机信号,有些地方满格,有些地方直接没信号。浮点数也一样,不是每个小数都能精确存下来。比如 0.1 在二进制里是无限循环的,存的时候就有微小误差。
所以做金额计算时,很多人不用 float 或 double,而是转成整数分来算,避免误差累积。
了解浮点数的范围和局限,能帮你避开一些隐藏的坑。尤其是在做科学计算、金融、图形处理这类对数值敏感的领域,选对类型很重要。