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

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.

主站蜘蛛池模板: 靖江市| 连南| 赣州市| 那坡县| 治多县| 叙永县| 资阳市| 枣阳市| 江油市| 县级市| 都江堰市| 娱乐| 博湖县| 黑水县| 辽源市| 庄浪县| 吉水县| 黑龙江省| 高阳县| 蓬安县| 东丽区| 华阴市| 盐亭县| 彭阳县| 英山县| 屏东市| 伊川县| 图片| 含山县| 西安市| 珠海市| 仪陇县| 石棉县| 揭西县| 吐鲁番市| 崇阳县| 西平县| 杂多县| 南京市| 普陀区| 阿荣旗|