-1

I've run a simple python command and it derives the following result. Can anyone tell me why?

a=[[0.12,0.35],[0.66,0.79]]
b=[[10*i,10*j] for i,j in a]

and I got the following result:

b=[[1.2, 3.5], [6.6000000000000005, 7.9]]
martineau
  • 119,623
  • 25
  • 170
  • 301
talentcat
  • 539
  • 5
  • 7

1 Answers1

0

This is simple representation "error". Binary numbers do not represent decimal values with prefect accuracy, any more than a terminating decimal can accurately represent, say, 1/7.

0.66 is a decimal whose binary representation is just a hair high (actually, they're all going to be a little "off", but this is the only one that shows at a factor of only 10). You can "fix" this by switching to a decimal data type.

Prune
  • 76,765
  • 14
  • 60
  • 81