Pārlūkot izejas kodu

Create float.md

Marco Bambini 6 gadi atpakaļ
vecāks
revīzija
a75ad926e9
1 mainītis faili ar 28 papildinājumiem un 0 dzēšanām
  1. 28 0
      docs/float.md

+ 28 - 0
docs/float.md

@@ -0,0 +1,28 @@
+### Float
+
+In most dynamically typed programming language both Integers and Float are internally represented by a C double value.
+In a modern 64bit system, this implementation leads to some issue because some integer values cannot be correctly represented by a double value (more on this in https://www.viva64.com/en/l/0018/).
+In Gravity Int and Float are internally represented by two different types to mitigate rounding errors.
+
+An Float represents a 64 bit floating point number (can optionally be compiled as 32 bit floating point number):
+```swift
+	var a = 3.1415;   // float
+	var b = 1.25e2;   // scientific notation
+
+	var f = 30.5.radians  // returns the result of converting 30.5 degrees to radians
+	var f = 3.14.degrees. // returns the result of converting 3.14 radians to degrees
+```
+
+The Float class exposes also a min/max property used to know at runtime lower/upper bound values:
+```swift
+  var min = Float.min;    // 2.22507e-308 in 64bit systems
+  var max = Float.max;    // 1.79769e+308 in 64bit systems
+```
+
+Other useful methods:
+```swift
+  var f = 3.1415;       // float
+  var f1 = f.ceil();    // result is 4 (ceil computes the smallest integer value not less than f)
+  var f2 = f.round();   // result is 3 (round computes the nearest integer value to f)
+  var f3 = f.floor();   // result is 3 (floor computes the largest integer value not greater than f)
+```