Wie kann ich vermeiden, dass ich beim Berechnen mit njit in Python eine falsche Antwort bekomme?Python

Python-Programme
Anonymous
 Wie kann ich vermeiden, dass ich beim Berechnen mit njit in Python eine falsche Antwort bekomme?

Post by Anonymous »

Um die Geschwindigkeit meines Codes in Python zu verbessern, verwende ich eine njit-Bibliothek von numba. Für die Zahl 94906267, die ich in meinen Berechnungen verwende, bekomme ich eine falsche Antwort. Wenn ich njit nicht verwende, liefert mein Code gleichzeitig eine korrekte Antwort. Hier sind zwei Beispiele.

Code: Select all

from numba import njit

@njit
def main_with_njit():
a = 94906267
print(f'main_with_njit: a**2 = {a ** 2}')  # -> a**2 = 9007199515875288
# the type is int64

main_with_njit()

def main_without_njit():
a = 94906267
print(f'main_without_njit: a**2 = {a ** 2}')  # -> a**2 = 9007199515875289
# the type is 

main_without_njit()
Wie kann ich njit verwenden, ohne eine falsche Antwort zu erhalten?

Ich verwende Python 3.11.3 mit PyCharm 2023.1.2 (Community Edition) unter Windows, 64 Bit, 0.61.0-Version von numba.
Ich habe das Problem reproduziert 0.63.1 Version von numba.
Ich kann das ursprünglich von @Roshan N beschriebene Problem mithilfe der Math-Bibliothek reproduzieren.

Code: Select all

import math

print(math.pow(94906267, 2)) # -> 9007199515875288.0

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post