Safe addition: Difference between revisions

Content added Content deleted
m (→‎{{header|Wren}}: Minor tidy)
(Added FreeBASIC)
Line 462:
fs. fs. 1.2299999999999998E0 1.2300000000000002E0 ok
</pre>
 
=={{header|FreeBASIC}}==
{{trans|Go}}
<syntaxhighlight lang="vbnet">Type interval
lower As Double
upper As Double
End Type
 
Function stepAway(x As Double) As interval
Dim As interval result
result.lower = x - 0.00000000000001
result.upper = x + 0.00000000000001
Return result
End Function
 
Function safeAdd(a As Double, b As Double) As interval
Return stepAway(a + b)
End Function
 
Dim As Double a = 1.2
Dim As Double b = .03
Dim As interval result = safeAdd(a, b)
Print a; " "; b; " "; result.lower; " "; result.upper
 
Sleep</syntaxhighlight>
{{out}}
<pre> 1.2 0.03 1.22999999999999 1.23000000000001</pre>
 
=={{header|Go}}==