官术网_书友最值得收藏!

Representation error

It should be noted that the native double precision representation of floating point numbers leads to some unexpected results. For example, consider the following:

This is a result of the fact that most decimal fractions are not exactly representable as a binary fraction, which is how most underlying hardware represents floating point numbers. For algorithms or applications where this may be an issue, Python provides a decimal module. This module allows for the exact representation of decimal numbers and facilitates greater control properties such as rounding behavior, number of significant digits, and precision. It defines two objects, a Decimal type, representing decimal numbers, and a Context type, representing various computational parameters such as precision, rounding, and error handling. An example of its usage can be seen in the following snippet:

Here we have created a global context and set the precision to 4. The Decimal object can be treated pretty much as you would treat an int or a float. They are subject to all the same mathematical operations and can be used as dictionary keys, placed in sets, and so on. In addition, Decimal objects also have several methods for mathematical operations, such as natural exponents, x.exp(), natural logarithms, x.ln(), and base 10 logarithms, x.log10().

Python also has a fractions module that implements a rational number type. The following example shows several ways to create fractions:

It is also worth mentioning here the NumPy extension. This has types for mathematical objects such as arrays, vectors, and matrixes, and capabilities for linear algebra, calculation of Fourier transforms, eigenvectors, logical operations, and much more.

主站蜘蛛池模板: 万州区| 溆浦县| 河南省| 宁陕县| 永平县| 石景山区| 阿鲁科尔沁旗| 丹巴县| 五台县| 凭祥市| 武山县| 宿迁市| 广南县| 伊金霍洛旗| 资阳市| 关岭| 漳州市| 凭祥市| 通江县| 台山市| 丰镇市| 龙岩市| 霞浦县| 闽清县| 民县| 湘阴县| 博湖县| 高雄县| 德钦县| 南乐县| 富锦市| 固阳县| 板桥市| 金塔县| 柳江县| 鹰潭市| 双牌县| 乐清市| 阿拉尔市| 小金县| 阳高县|