Safe addition: Difference between revisions
Content added Content deleted
m (→{{header|Wren}}: Minor tidy) |
(Added FreeBASIC) |
||
Line 462: | Line 462: | ||
fs. fs. 1.2299999999999998E0 1.2300000000000002E0 ok |
fs. fs. 1.2299999999999998E0 1.2300000000000002E0 ok |
||
</pre> |
</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}}== |
=={{header|Go}}== |