absolutely, though even an epsilon is a bit of a hack IMHO. given the more 
ops you do the greater the potential discrepancy, and, i guess, you get a 
normal dist. of values, so any epsilon only has a probability of working, 
albeit potentially astronomically high probability.

so then why even have float equality in the/any language at all?

or might be nice if vet warned

On Sunday, 26 January 2020 03:34:11 UTC, Kurtis Rader wrote:
>
> This is why you should never, ever, do a simple equality test involving a 
> F.P. value derived from a calculation. You always have to apply an 
> epsilon to define a range within which the two F.P. values should be 
> considered equal.
> On Sat, Jan 25, 2020 at 7:14 PM Jason E. Aten <j.e...@gmail.com 
> <javascript:>> wrote:
>
>>
>> https://play.golang.org/p/87bDubJxjHO
>>
>> I'd like to truncate a float64 to just 2 decimal places (in base 10), but 
>> math.Trunc is not helping me here... ideally I put 0.29 in and I get 0.29 
>> out.
>> Suggestions?  Playground examples appreciated.
>>
>> package main
>>
>> import (
>> "fmt"
>> "math"
>> )
>>
>> // truncate off everything after the last two decimals, no rounding.
>> func decimal2(x float64) float64 {
>>     return math.Trunc(x*100) / 100
>> }
>>
>> func main() {
>>         x := 0.29
>>         y := decimal2(x)
>> fmt.Printf("x=%v -> y = %v", x, y) // prints x=0.29  ->  y=0.28
>> }
>>
>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "golang-nuts" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to golan...@googlegroups.com <javascript:>.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/golang-nuts/96528d64-a670-45ba-ad4c-0701dcd0d78d%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/golang-nuts/96528d64-a670-45ba-ad4c-0701dcd0d78d%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>
>
> -- 
> Kurtis Rader
> Caretaker of the exceptional canines Junior and Hank
>

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/229c73ce-88fb-46a0-a2ee-8454cbaa6ae5%40googlegroups.com.

Reply via email to