-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
  • 112,593
  • 23
  • 157
  • 280
talentcat
  • 449
  • 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
  • 75,308
  • 14
  • 55
  • 76