2016-04-12 25 views
0

?Çarpma piton bir çarpma kesin bir sonuç elde edebilirsiniz nasıl

Python 0.017 * 30.051000000000000004 eşittir söylüyor. Python yazdırma 0.051 yapmak için herhangi bir komut var mı?

+0

o ana kadar denedim ne olacak? Ben sadece .017 * 3 'yazdıysanız .017 * 3' yazdıysanız probleminizi çoğaltabilirim. Neler olduğunu anlamak için "kayan noktalı sayılar" tanımını aramak isteyebilirsiniz. –

cevap

2

Eğer operasyon çıkışı kullanabilirsiniz gereken anlamlı basamak beklenen numarasını bilmek varsayarsak yerleşik (bu durumda 3) Python işlevini yuvarlama. Python

>>> round(0.017 * 3, 3) 
0.051 
+0

Soru şu: "Bir sonucu tam olarak nasıl elde edersiniz". Bu cevap, bu soruya cevap vermiyor. Aslında, doğruluk ekliyorsun. Cevabınızın başında neden bir yuvarlama çözümü sunduğunuzu belirtmelisiniz. –

+0

Düzenleme: Nevermind, haklısın! – jfbeltran

+0

Bu durumda, daha sonra bu varsayımı cevabınıza bir haberci olarak ekleyin. –

1

Fraksiyonel sayısal hazır ikili temsil edilmektedir tip float var. Taban 10 aritmetik için Decimal türünü kullanın.

>>> from decimal import Decimal 
>>> print(Decimal('0.017') * 3) 
0.051 
+0

Ben Ondalık (',05100000000000000366373598126') – Jerther

+1

@Jerther Eğer 0.017'' ' 'belki etrafında tırnak yazın mı olsun? Python'un hangi sürümünü kullanıyorsunuz? –

+0

Haklısınız, alıntıları çıkardım. Her zaman sadece ipi ayrıştıran hızlı bir kolaylık kurucusu olduğunu düşündüm. Tabii ki öyle değil :) – Jerther

İlgili konular