# 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 mirtchovski
<mirtchov...@gmail.com> 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.00000098280725069344043731689453125 (according to wolfram
> alpha)
>
> On Thu, Feb 22, 2018 at 1:32 PM,  <steve_bagw...@sil.org> 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.500000, height: 262256.452301, Area: 39709429597.000000
>>> 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