Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonでこの種のfloatが正確である10進数のおおよその数を取得します


この種のfloatが正確であるおおよその小数点以下の桁数を取得するには、Python Numpyのnumpy.finfo()メソッドのprecision属性を使用します。 finfo()の最初のパラメーターはfloatです。つまり、情報を取得するためのfloatデータ型の種類です。

ステップ

まず、必要なライブラリをインポートします-

import numpy as np

float16タイプをチェックしています。精度は、おおよその小数点以下の桁数を取得することです。指数部分のビット数を取得するためのiexpis。 minは、指定されたdtypeの最小値です。maxは、指定されたdtypeの最小値です-

a = np.finfo(np.float16(45.976))
print("The precision to get the approximate number of decimal digits...\n",a.precision)
print("Number of bits in the exponent portion...\n",a.iexp)
print("Minimum of float16 type...\n",a.min)
print("Maximum of float16 type...\n",a.max)
>

float32タイプの確認-

b = np.finfo(np.float32(22.3))
print("\nThe precision to get the approximate number of decimal digits...\n",a.precision)
print("Number of bits in the exponent portion...\n",b.iexp)
print("Minimum of float32 type...\n",b.min)
print("Maximum of float32 type...\n",b.max)

フロートタイプの確認-

c = np.finfo(np.float64(29.2))
print("\nThe precision to get the approximate number of decimal digits...\n",a.precision)
print("Number of bits in the exponent portion...\n",c.iexp)
print("Minimum of float64 type...\n",c.min)
print("Maximum of float64 type...\n",c.max)

import numpy as np

# To get the approximate number of decimal digits to which this kind of float is precise, use the precision attribute of the numpy.finfo() method in Python Numpy
# The first parameter of the finfo() is the float i.e. the kind of float data type to get information about.

# Checking for float16 type
a = np.finfo(np.float16(45.976))
print("The precision to get the approximate number of decimal digits...\n",a.precision)
print("Number of bits in the exponent portion...\n",a.iexp)
print("Minimum of float16 type...\n",a.min)
print("Maximum of float16 type...\n",a.max)

# Checking for float32 type
b = np.finfo(np.float32(22.3))
print("\nThe precision to get the approximate number of decimal digits...\n",a.precision)
print("Number of bits in the exponent portion...\n",b.iexp)
print("Minimum of float32 type...\n",b.min)
print("Maximum of float32 type...\n",b.max)

# Checking for float type
c = np.finfo(np.float64(29.2))
print("\nThe precision to get the approximate number of decimal digits...\n",a.precision)
print("Number of bits in the exponent portion...\n",c.iexp)
print("Minimum of float64 type...\n",c.min)
print("Maximum of float64 type...\n",c.max)

出力

The precision to get the approximate number of decimal digits...
3
Number of bits in the exponent portion...
5
Minimum of float16 type...
-65500.0
Maximum of float16 type...
65500.0

The precision to get the approximate number of decimal digits...
3
Number of bits in the exponent portion...
8
Minimum of float32 type...
-3.4028235e+38
Maximum of float32 type...
3.4028235e+38

The precision to get the approximate number of decimal digits...
3
Number of bits in the exponent portion...
11
Minimum of float64 type...
-1.7976931348623157e+308
Maximum of float64 type...
1.7976931348623157e+308

  1. 浮動小数点の10進数を8進数に変換するPythonプログラム

    浮動小数点の小数値を指定し、小数点以下の桁数を入力すると、8進数に変換することがタスクになります。 最初に、浮動小数点値から整数部分を取得して8進数に変換し、次に小数部分を取得して8進数形式に変換し、最後に両方を結合します。 したがって、最初のステップは、整数部分を取得し、数値を8で除算し、配当が8未満になるまで余りを書き留め、残りをすべてコピーすることです。 2番目のステップは小数部分であり、小数部分として0が残るまで、そして最初に整数部分を書き留めてから、新しい値の小数部分に再び8を掛けてから続けない限り、小数部分に8を掛け続けます。これは、完全な数に達するまでです。 サンプルコード

  2. Pythonでインスタンスのクラス名を取得するにはどうすればよいですか?

    次のコードは、問題のインスタンスのクラス名を取得する方法を示しています。 例 class Number:     def __init__(self, number):         self.number = number n1 = Number(1) print n1.__class__ print n1.__class__.__name__ 出力 これにより出力が得られます __main__.Number Number