aboutsummaryrefslogtreecommitdiffstats
path: root/docs/types.rst
diff options
context:
space:
mode:
authorchriseth <c@ethdev.com>2016-03-11 23:44:16 +0800
committerchriseth <c@ethdev.com>2016-03-11 23:44:24 +0800
commit62d8be9e215a3740e4ac5875fe3040395ef17a0c (patch)
tree8fa0a1e0c40b14a2fbd388d53137d86dc9713f0c /docs/types.rst
parentee0ba31c2b6a2cc40bf12198e84f8bb4cd64414a (diff)
downloaddexon-solidity-62d8be9e215a3740e4ac5875fe3040395ef17a0c.tar.gz
dexon-solidity-62d8be9e215a3740e4ac5875fe3040395ef17a0c.tar.zst
dexon-solidity-62d8be9e215a3740e4ac5875fe3040395ef17a0c.zip
Warning about using integer literals in division.
Diffstat (limited to 'docs/types.rst')
-rw-r--r--docs/types.rst9
1 files changed, 9 insertions, 0 deletions
diff --git a/docs/types.rst b/docs/types.rst
index ad8784b7..a09a490d 100644
--- a/docs/types.rst
+++ b/docs/types.rst
@@ -51,6 +51,9 @@ Operators:
* Bit operators: `&`, `|`, `^` (bitwise exclusive or), `~` (bitwise negation)
* Arithmetic operators: `+`, `-`, unary `-`, unary `+`, `*`, `/`, `%` (remainder), `**` (exponentiation)
+Division always truncates (it just maps to the DIV opcode of the EVM), but it does not truncate if both
+operators are :ref:`literals<integer_literals>` (or literal expressions).
+
.. index:: address, balance, send, call, callcode
Address
@@ -132,6 +135,8 @@ number of bytes, always use one of `bytes1` to `bytes32` because they are much c
.. index:: literal, literal;integer
+.. _integer_literals:
+
Integer Literals
-----------------
@@ -139,6 +144,10 @@ Integer Literals are arbitrary precision integers until they are used together w
It is even possible to temporarily exceed the maximum of 256 bits as long as only integer literals are used for the computation: `var x = (0xffffffffffffffffffff * 0xffffffffffffffffffff) * 0;` Here, `x` will have the value `0` and thus the type `uint8`.
+.. warning::
+ Divison on integer literals used to truncate in earlier versions, but it will actually convert into a rational number in the future, i.e. `1/2` is not equal to `0`, but to `0.5`.
+
+
.. index:: literal, literal;string, string
String Literals