14 lines
670 B
AutoHotkey
14 lines
670 B
AutoHotkey
Msgbox % IntervalAdd(1,2) ; [2.999999,3.000001]
|
|
|
|
SetFormat, FloatFast, 0.20
|
|
Msgbox % IntervalAdd(1,2) ; [2.99999999999999910000,3.00000000000000090000]
|
|
|
|
;In v1.0.48+, floating point variables have about 15 digits of precision internally
|
|
;unless SetFormat Float (i.e. the slow mode) is present anywhere in the script.
|
|
;In that case, the stored precision of floating point numbers is determined by A_FormatFloat.
|
|
;As there is no way for this function to know whether this is the case or not,
|
|
;it conservatively uses A_FormatFloat in all cases.
|
|
IntervalAdd(a,b){
|
|
err:=0.1**(SubStr(A_FormatFloat,3) > 15 ? 15 : SubStr(A_FormatFloat,3))
|
|
Return "[" a+b-err ","a+b+err "]"
|
|
}
|