Re: [go-nuts] Float multiplication bug?

2018-02-22 Thread Michael Jones
finished. Steve, this may help explain.
https://play.golang.org/p/tcy1QFZb-Fp


On Thu, Feb 22, 2018 at 5:35 PM, Michael Jones 
wrote:

> 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?

2018-02-22 Thread Michael Jones
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

-- 
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?

2018-02-22 Thread andrey mirtchovski
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 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.


Re: [go-nuts] Float multiplication bug?

2018-02-22 Thread andrey mirtchovski
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.