• 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

Aruba Cloud VPS - 50% taniej przez 3 miesiące!
+1 głos
643 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 (256,320 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 (57,360 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,605 wizyt
pytanie zadane 7 marca 2020 w Python przez edwardkraweznik Dyskutant (9,930 p.)
0 głosów
1 odpowiedź 751 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,427 wizyt

93,164 zapytań

142,176 odpowiedzi

321,933 komentarzy

62,491 pasjonatów

Advent of Code 2024

Top 15 użytkowników

  1. 688p. - dia-Chann
  2. 676p. - CC PL
  3. 675p. - Łukasz Piwowar
  4. 662p. - Łukasz Eckert
  5. 649p. - Michal Drewniak
  6. 641p. - rucin93
  7. 621p. - Dawid128
  8. 572p. - ssynowiec
  9. 521p. - Piotr Aleksandrowicz
  10. 498p. - Michał Telesz
  11. 490p. - Hubert Chęciński
  12. 457p. - Marcin Putra
  13. 437p. - nidomika
  14. 432p. - rafalszastok
  15. 427p. - Adrian Wieprzkowicz
Szczegóły i pełne wyniki

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

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...