Re: [go-nuts] Float multiplication bug?
finished. Steve, this may help explain. https://play.golang.org/p/tcy1QFZb-Fp On Thu, Feb 22, 2018 at 5:35 PM, Michael Joneswrote: > https://play.golang.org/p/0XRLg6-6uPk > > On Thu, Feb 22, 2018 at 1:09 PM, andrey mirtchovski > wrote: > >> in the first Printf "area" is truncated. try %.40f to see the real >> value, which is more like: >> >> 262256.4523014638689346611499786376953125 >> >> plugging that in as h2 will result in >> 39709429597.0098280725069344043731689453125 (according to wolfram >> alpha) >> >> On Thu, Feb 22, 2018 at 1:32 PM, wrote: >> > >> > Hello Everyone, >> > >> > This looks like a Golang bug to me. What do you all think? >> > >> > I have this function ... >> > >> >> func getArea(base, side int64) float64 { >> >> var height, fSide, area float64 >> >> fSide = float64(side) >> >> halfBase := float64(base) / 2.0 >> >> height = math.Sqrt(fSide*fSide - halfBase*halfBase) >> >> area = halfBase * height >> >> fmt.Printf("halfBase: %f, height: %f, Area: %f\n", halfBase, height, >> area) >> > >> > >> >> >> >> hb2 := 151414.5 >> >> h2 := 262256.452301 >> >> fmt.Printf("Area 2: %f\n", hb2 * h2) >> > >> > >> >> >> >> return area >> >> } >> > >> > >> > When I call it with `result := getArea(302829, 302828)`, I get this >> output >> > ... >> > >> >> halfBase: 151414.50, height: 262256.452301, Area: >> 39709429597.00 >> >> Area 2: 39709429596.929764 >> > >> > >> > I could see how some kind of rounding could produce the first Area >> value. >> > But in that case, why wouldn't Area2 be rounded as well? >> > >> > -- >> > 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. >> > For more options, visit https://groups.google.com/d/optout. >> >> -- >> 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. >> For more options, visit https://groups.google.com/d/optout. >> > > > > -- > Michael T. Jones > michael.jo...@gmail.com > -- Michael T. Jones michael.jo...@gmail.com -- 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. For more options, visit https://groups.google.com/d/optout.
Re: [go-nuts] Float multiplication bug?
https://play.golang.org/p/0XRLg6-6uPk On Thu, Feb 22, 2018 at 1:09 PM, andrey mirtchovskiwrote: > in the first Printf "area" is truncated. try %.40f to see the real > value, which is more like: > > 262256.4523014638689346611499786376953125 > > plugging that in as h2 will result in > 39709429597.0098280725069344043731689453125 (according to wolfram > alpha) > > On Thu, Feb 22, 2018 at 1:32 PM, wrote: > > > > Hello Everyone, > > > > This looks like a Golang bug to me. What do you all think? > > > > I have this function ... > > > >> func getArea(base, side int64) float64 { > >> var height, fSide, area float64 > >> fSide = float64(side) > >> halfBase := float64(base) / 2.0 > >> height = math.Sqrt(fSide*fSide - halfBase*halfBase) > >> area = halfBase * height > >> fmt.Printf("halfBase: %f, height: %f, Area: %f\n", halfBase, height, > area) > > > > > >> > >> hb2 := 151414.5 > >> h2 := 262256.452301 > >> fmt.Printf("Area 2: %f\n", hb2 * h2) > > > > > >> > >> return area > >> } > > > > > > When I call it with `result := getArea(302829, 302828)`, I get this > output > > ... > > > >> halfBase: 151414.50, height: 262256.452301, Area: 39709429597.00 > >> Area 2: 39709429596.929764 > > > > > > I could see how some kind of rounding could produce the first Area value. > > But in that case, why wouldn't Area2 be rounded as well? > > > > -- > > 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. > > For more options, visit https://groups.google.com/d/optout. > > -- > 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. > For more options, visit https://groups.google.com/d/optout. > -- Michael T. Jones michael.jo...@gmail.com -- 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. For more options, visit https://groups.google.com/d/optout.
Re: [go-nuts] Float multiplication bug?
sorry, i just realized that i said 'area' but meant 'height' in my previous email. On Thu, Feb 22, 2018 at 2:09 PM, andrey mirtchovskiwrote: > in the first Printf "area" is truncated. try %.40f to see the real > value, which is more like: > > 262256.4523014638689346611499786376953125 > > plugging that in as h2 will result in > 39709429597.0098280725069344043731689453125 (according to wolfram > alpha) > > On Thu, Feb 22, 2018 at 1:32 PM, wrote: >> >> Hello Everyone, >> >> This looks like a Golang bug to me. What do you all think? >> >> I have this function ... >> >>> func getArea(base, side int64) float64 { >>> var height, fSide, area float64 >>> fSide = float64(side) >>> halfBase := float64(base) / 2.0 >>> height = math.Sqrt(fSide*fSide - halfBase*halfBase) >>> area = halfBase * height >>> fmt.Printf("halfBase: %f, height: %f, Area: %f\n", halfBase, height, area) >> >> >>> >>> hb2 := 151414.5 >>> h2 := 262256.452301 >>> fmt.Printf("Area 2: %f\n", hb2 * h2) >> >> >>> >>> return area >>> } >> >> >> When I call it with `result := getArea(302829, 302828)`, I get this output >> ... >> >>> halfBase: 151414.50, height: 262256.452301, Area: 39709429597.00 >>> Area 2: 39709429596.929764 >> >> >> I could see how some kind of rounding could produce the first Area value. >> But in that case, why wouldn't Area2 be rounded as well? >> >> -- >> 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. >> For more options, visit https://groups.google.com/d/optout. -- 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. For more options, visit https://groups.google.com/d/optout.
Re: [go-nuts] Float multiplication bug?
in the first Printf "area" is truncated. try %.40f to see the real value, which is more like: 262256.4523014638689346611499786376953125 plugging that in as h2 will result in 39709429597.0098280725069344043731689453125 (according to wolfram alpha) On Thu, Feb 22, 2018 at 1:32 PM,wrote: > > Hello Everyone, > > This looks like a Golang bug to me. What do you all think? > > I have this function ... > >> func getArea(base, side int64) float64 { >> var height, fSide, area float64 >> fSide = float64(side) >> halfBase := float64(base) / 2.0 >> height = math.Sqrt(fSide*fSide - halfBase*halfBase) >> area = halfBase * height >> fmt.Printf("halfBase: %f, height: %f, Area: %f\n", halfBase, height, area) > > >> >> hb2 := 151414.5 >> h2 := 262256.452301 >> fmt.Printf("Area 2: %f\n", hb2 * h2) > > >> >> return area >> } > > > When I call it with `result := getArea(302829, 302828)`, I get this output > ... > >> halfBase: 151414.50, height: 262256.452301, Area: 39709429597.00 >> Area 2: 39709429596.929764 > > > I could see how some kind of rounding could produce the first Area value. > But in that case, why wouldn't Area2 be rounded as well? > > -- > 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. > For more options, visit https://groups.google.com/d/optout. -- 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. For more options, visit https://groups.google.com/d/optout.
[go-nuts] Float multiplication bug?
Hello Everyone, This looks like a Golang bug to me. What do you all think? > I have this function ... func getArea(base, side int64) float64 { > var height, fSide, area float64 > fSide = float64(side) > halfBase := float64(base) / 2.0 > height = math.Sqrt(fSide*fSide - halfBase*halfBase) > area = halfBase * height > fmt.Printf("halfBase: %f, height: %f, Area: %f\n", halfBase, height, area) > > hb2 := 151414.5 > h2 := 262256.452301 > fmt.Printf("Area 2: %f\n", hb2 * h2) > > return area > } When I call it with `result := getArea(302829, 302828)`, I get this output ... halfBase: 151414.50, height: 262256.452301, Area: 39709429597.00 > Area 2: 39709429596.929764 I could see how some kind of rounding could produce the first Area value. But in that case, why wouldn't Area2 be rounded as well? -- 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. For more options, visit https://groups.google.com/d/optout.