• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Python - convert float to string

Object Storage Arubacloud
+1 głos
464 wizyt
pytanie zadane 28 lipca 2021 w Python przez Hysek Obywatel (1,250 p.)
zamknięte 28 lipca 2021 przez Hysek

Witam, mam problem z liczbami zmiennoprzecinkowymi, a mianowicie mam liczbę od 0 do 1 z 57 miejscami po przecinku np: 

A)    0.96645234294231090918060612632570443016890734520385338919

i gdy chce użyć tej liczby w jakiejś funkcji np: str() to ta liczba zostaje skonwertowana do takiej

B)    0.9664523429423109

Podsumowywująca potrzebuje zamienić liczbę na string a następnie przepuścić przez funkcje haszującą sha256.

poprawny hash powinien wyglądać tak:

6be0368cdf5188bf1b4b3a0011d694d3065a905f6152b03c6a44b6f372da1a90

ale niestety wygląda tak:

e146b220a0af92e33bb35ec333565ca93c841fecd671539701bd71c4d719045c

dlatego że nie haszuje liczby A tylko liczbę B gdyż zmiana float na string ucina mi parędziesiąt miejsc po przecinku.

 

Jak by ktoś znał jakąś funkcje albo bibliotekę umożliwiającą dokładne zamienienie float na string bez utraty kilkudziesięciu miejsc po przecinku był bym bardzo wdzięczny. 

 

komentarz zamknięcia: mpmath
1
komentarz 28 lipca 2021 przez VBService Ekspert (252,740 p.)
edycja 28 lipca 2021 przez VBService

Sprawdź ten artykuł, czy spełnia Twoje oczekiwania?

The bigfloat package — high precision floating-point arithmetic

albo ten

mpmath is a free (BSD licensed) Python library for real and complex floating-point

 

jeżeli możesz zapisać liczbę A do pliku to mam taki "pomysł"

high-precision-floating-point.dat

0.96645234294231090918060612632570443016890734520385338919
f = open("high-precision-floating-point.dat", "r")
x = f.read()
print(type(x), '\n', x)

1
komentarz 28 lipca 2021 przez Hysek Obywatel (1,250 p.)
Zapis do pliku niestety nie spełnia moich oczekiwań gdyż musze wykonać dużo operacji na liczbach i przy konwersacji z stringu do float dalej ucina mi liczbę.

Ale biblioteka mpmath jest idealna, to właśnie tego szukałem !!

dziękuje za pomoc +1
1
komentarz 28 lipca 2021 przez Whistleroosh Maniak (56,980 p.)
innym rozwiązaniem jest wbudowany w pythona moduł decimal, który również pozwala ustawić precyzję liczb zmiennoprzecinkowych

Podobne pytania

0 głosów
1 odpowiedź 1,381 wizyt
pytanie zadane 7 marca 2020 w Python przez edwardkraweznik Dyskutant (9,930 p.)
0 głosów
1 odpowiedź 588 wizyt
pytanie zadane 5 stycznia 2019 w C i C++ przez Teslum_369 Gaduła (4,190 p.)
0 głosów
2 odpowiedzi 1,231 wizyt

92,552 zapytań

141,399 odpowiedzi

319,534 komentarzy

61,938 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...