Thursday, 19 March 2015

5.3.2.Membandingkan Numbers

Pada Python (dan pada kebanyakan software programming lainnya) objek angka dapat dibandingkan yang menghasilkan boolean, untuk membandingkan ada 2 macam, cara biasa dan cara panjang. 
Cara biasa adalah membandingkan dua buah objek, seperti 'a<100', 'a>b', 'a==50', dan 
Cara panjang adalah membandingkan beberapa objek sekaligus, seperti 'a<100>b', atau 'a<b<c'. Untuk pembacaan, atau prioritas pembacanya sendiri mulai dari kiri ke kanan. jadi untuk 'a<b<c', sederhanya adalah 'a<b', 'b<c'.

  • >>> a=10
  • >>> b=20
  • >>> c=50
  • >>> d=5
  • >>> a<b
  • True
  • >>> a<d
  • False
  • >>> a<b<c      # a<b and b<c, 
  • True
  • >>> a<b<c<d   # a<b and b<c and c<d
  • False
  • >>> a==b
  • False
  • >>> a!=c
  • True
  • >>> a<b and a>c  
  • False
  • >>> a<b and a>d
  • True
  • >>> 


Ada yang menarik dari Python ini, bila kita menjumlah dua bilangan float dan membandingkan jawabanya, maka:
  • >>> 1.1+1.1==2.2
  • True
  • >>> 1.1+2.2==3.3
  • False
  • >>> 


Pada penjumlahan 1,1+2,2 tidak samadengan 3,3. Kenapa demikian? Karena ada keterbatasan angka presisi. Kita buktikan:
  • >>> 1.1+1.1
  • 2.2
  • >>> 1.1+2.2
  • 3.3000000000000003 
  • >>> 


Hampir sama dengan 3.3 bukan? dari mana angka 0.0000000000000003. Ya, ini adalah suatu masalah dari float point. Mengapa terjadi? Float memiliki keterbatasan nilai bits. Untuk menghindari ini mungkin kita bisa pertimbangkan 'decimals' dan 'fractions'.

No comments:

Post a Comment