mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Merge pull request #2871 from ethereum/fixedpointdocs
Explain fixed point types in docs
This commit is contained in:
commit
152a0e69c4
@ -103,11 +103,6 @@ This is a limitation of the EVM and will be solved with the next protocol update
|
|||||||
|
|
||||||
Returning variably-sized data as part of an external transaction or call is fine.
|
Returning variably-sized data as part of an external transaction or call is fine.
|
||||||
|
|
||||||
How do you represent ``double``/``float`` in Solidity?
|
|
||||||
======================================================
|
|
||||||
|
|
||||||
This is not yet possible.
|
|
||||||
|
|
||||||
Is it possible to in-line initialize an array like so: ``string[] myarray = ["a", "b"];``
|
Is it possible to in-line initialize an array like so: ``string[] myarray = ["a", "b"];``
|
||||||
=========================================================================================
|
=========================================================================================
|
||||||
|
|
||||||
|
@ -70,6 +70,30 @@ sign extends. Shifting by a negative amount throws a runtime exception.
|
|||||||
are going to be rounded towards zero (truncated). In other programming languages the shift right of negative values
|
are going to be rounded towards zero (truncated). In other programming languages the shift right of negative values
|
||||||
works like division with rounding down (towards negative infinity).
|
works like division with rounding down (towards negative infinity).
|
||||||
|
|
||||||
|
.. index:: ! ufixed, ! fixed, ! fixed point number
|
||||||
|
|
||||||
|
Fixed Point Numbers
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
.. warning::
|
||||||
|
Fixed point numbers are not fully supported by Solidity yet. They can be declared, but
|
||||||
|
cannot be assigned to or from.
|
||||||
|
|
||||||
|
``fixed`` / ``ufixed``: Signed and unsigned fixed point number of various sizes. Keywords ``ufixedMxN`` and ``fixedMxN``, where ``M`` represent the number of bits taken by
|
||||||
|
the type and ``N`` represent how many decimal points are available. ``M`` must be divisible by 8 and goes from 8 to 256 bits. ``N`` must be between 0 and 80, inclusive.
|
||||||
|
``ufixed`` and ``fixed`` are aliases for ``ufixed128x19`` and ``fixed128x19``, respectively.
|
||||||
|
|
||||||
|
Operators:
|
||||||
|
|
||||||
|
* Comparisons: ``<=``, ``<``, ``==``, ``!=``, ``>=``, ``>`` (evaluate to ``bool``)
|
||||||
|
* Arithmetic operators: ``+``, ``-``, unary ``-``, unary ``+``, ``*``, ``/``, ``%`` (remainder)
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
The main difference between floating point (``float`` and ``double`` in many languages, more precisely IEEE 754 numbers) and fixed point numbers is
|
||||||
|
that the number of bits used for the integer and the fractional part (the part after the decimal dot) is flexible in the former, while it is strictly
|
||||||
|
defined in the latter. Generally, in floating point almost the entire space is used to represent the number, while only a small number of bits define
|
||||||
|
where the decimal point is.
|
||||||
|
|
||||||
.. index:: address, balance, send, call, callcode, delegatecall, transfer
|
.. index:: address, balance, send, call, callcode, delegatecall, transfer
|
||||||
|
|
||||||
.. _address:
|
.. _address:
|
||||||
@ -203,15 +227,6 @@ As a rule of thumb, use ``bytes`` for arbitrary-length raw byte data and ``strin
|
|||||||
for arbitrary-length string (UTF-8) data. If you can limit the length to a certain
|
for arbitrary-length string (UTF-8) data. If you can limit the length to a certain
|
||||||
number of bytes, always use one of ``bytes1`` to ``bytes32`` because they are much cheaper.
|
number of bytes, always use one of ``bytes1`` to ``bytes32`` because they are much cheaper.
|
||||||
|
|
||||||
.. index:: ! ufixed, ! fixed, ! fixed point number
|
|
||||||
|
|
||||||
Fixed Point Numbers
|
|
||||||
-------------------
|
|
||||||
|
|
||||||
.. warning::
|
|
||||||
Fixed point numbers are not fully supported by Solidity yet. They can be declared, but
|
|
||||||
cannot be assigned to or from.
|
|
||||||
|
|
||||||
.. index:: address, literal;address
|
.. index:: address, literal;address
|
||||||
|
|
||||||
.. _address_literals:
|
.. _address_literals:
|
||||||
|
Loading…
Reference in New Issue
Block a user