are you sure? surely floats can have, say, a small number added, that depending of the value, sometimes doesn't change them and sometimes does. seems to me the same issue.
On Saturday, 22 February 2020 19:58:09 UTC, robert engels wrote: > > 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 < > golan...@googlegroups.com <javascript:>> 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> 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. >>> 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 golan...@googlegroups.com <javascript:>. > 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/c37a2676-e6d2-4513-bb82-aad9b4755d80%40googlegroups.com.