定点数

定点数（英语：fixed-point number）是一种实数数据类型，要求小数点后位数固定，有时也要求小数点前位数固定。定点数与更复杂的浮点数相对。
如果程序需要在没有FPU的处理器上执行，或者可以通过定点数提高效率和计算精度时，常使用定点数表示基数为2或10的分数。

实现

定点数类型的值其实就是个整数，需要额外做比例进位，进多少位需要根据具体的定点数类型决定。例如 1.23 使用 1/1000 比例的定点数表示时是1230；1,230,000 使用 1000 比例的定点数表示也是1230。与浮点数不同，相同类型的定点数中所有值的缩放系数都是一致的，在计算过程中也保持不变。
缩放系数通常是10 或 2 的幂，前者方便人类读写，后者易于高效计算。不过有时也会使用其它比例，例如可以用1/3600 的比例的定点数来表示以小时为单位的时间值，可以精确到秒。
定点数的最大值，可以通过将其内部所使用的整数的最大值乘以缩放系数求得，最小值同理。

二进制与十进制

常见的定点数类型分二进制和十进制两种。十进制定点数的缩放系数是10的幂，二进制定点数的缩放系数是2的幂。
最常用的定点数是二进制的，因为按照缩放系数还原的操作可以用快速的移位操作实现。