float equality is useful for determining if “something changed” (e.g. the 
record has changed), you can also use float keys - the equality matters, the 
actual value not so much.

> On Feb 22, 2020, at 1:50 PM, 'simon place' via golang-nuts 
> <golang-nuts@googlegroups.com> wrote:
> 
> 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 <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 
> <mailto: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
>  
> <https://groups.google.com/d/msgid/golang-nuts/229c73ce-88fb-46a0-a2ee-8454cbaa6ae5%40googlegroups.com?utm_medium=email&utm_source=footer>.

-- 
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/44D16F57-2D09-455C-9A24-7F53BB4E8C7A%40ix.netcom.com.

Reply via email to