> print(sqrt(3))
1.75
> print(sqrt(3)^2)
3.063
> print(1.732^2)
3
or, with the same level of precision
> print(1.73^2)
2.993



If anyone else has this problem, I am currently doing all right with this (which also works around the other sqrt bug):
sqrt0 = sqrt function sqrt(x) if (x<=0) return 0 if (x>=32761) return 181.0 local s = 1 while x <= 100 do x *= 100 s *= 10 end return sqrt0(x)/s end |
I haven't done much work to find the optimal domain, and arguably powers of 2 would be better than powers of 10, but this seems to work okay for my needs.
[Please log in to post a comment]