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

PHP - Duże liczby w obliczeniach.

Aruba Cloud VPS - 50% taniej przez 3 miesiące!
+1 głos
811 wizyt
pytanie zadane 23 października 2021 w PHP przez stanislawruszkowski Obywatel (1,310 p.)

Witam, 

Wie ktoś jak zrobić, żeby przy wynik była pełna liczba?

Z góry dziękuję za odpowiedź. 

Kod:

<?php

    $dzialanie1 = $_POST["dzialanie1"];
    $dzialanie2 = $_POST["dzialanie2"];

    $wynik = $dzialanie1 + $dzialanie2;
?>
<!DOCTYPE html>
<head>



</head>

<body>

    <form method="POST">
        Działanie: <input type="text" name="dzialanie1"> + <input type="text" name="dzialanie2"> </br>
        <input type="submit" value="Kalkuluj"></br>
        Wynik: <?php 
            if (!isset($wynik)) 
            {
                $wynik_napis = "";
            }
            else
            {
                $wynik_napis = $wynik;
            }
            echo $wynik_napis;
        ?>
    </form>

</body>

</head>

 

1
komentarz 23 października 2021 przez Jakub 0 Pasjonat (23,120 p.)

Nie piszę w PHP, ale ponoć można użyć standardowej biblioteki BCMath.

1 odpowiedź

0 głosów
odpowiedź 24 października 2021 przez VBService Ekspert (256,320 p.)
edycja 24 października 2021 przez VBService

Na początek spróbuj z 

ini_set('precision', ...)

 

<?php
 
  $dzialanie1 = $_POST["dzialanie1"];
  $dzialanie2 = $_POST["dzialanie2"];
 
  ini_set('precision', 25); 
  $wynik = $dzialanie1 + $dzialanie2;
?>
<!DOCTYPE html>
<html>
  <head> 
  </head>
  <body> 
    <form method="POST">
      Działanie: 
      <input type="text" name="dzialanie1"> + 
      <input type="text" name="dzialanie2"></br>
      <input type="submit" value="Kalkuluj"></br>
      Wynik: <?php echo (isset($wynik)) ? $wynik : ''; ?>
    </form> 
  </body>
</html>

 

ewentualnie sprawdź wspomnianą już przez @Jakub 0, bibliotekę BCMath lub GMP

 

Working with large numbers in PHP ]

 

P.S.
Can I rely on PHP php.ini precision workaround for floating point issue
Why is my number value changing using number_format()?

komentarz 24 października 2021 przez tkz Nałogowiec (42,020 p.)
Tak na marginesie. PHP jest oparty o C, więc dokładność będzie marna, jak to w C bywa. Osobiście kierowałbym się w stronę stałoprzecinkowych, lub zaproponowanego GMP, który jest znośny.

Podobne pytania

+1 głos
1 odpowiedź 527 wizyt
0 głosów
1 odpowiedź 464 wizyt
pytanie zadane 25 kwietnia 2019 w Matematyka, fizyka, logika przez DODO Bywalec (2,950 p.)
0 głosów
1 odpowiedź 474 wizyt
pytanie zadane 27 lutego 2018 w Matematyka, fizyka, logika przez Jiin Obywatel (1,390 p.)

93,187 zapytań

142,201 odpowiedzi

322,012 komentarzy

62,514 pasjonatów

Advent of Code 2024

Top 15 użytkowników

  1. 2365p. - dia-Chann
  2. 2315p. - Łukasz Eckert
  3. 2209p. - Łukasz Piwowar
  4. 2037p. - Tomasz Bielak
  5. 2006p. - rucin93
  6. 2006p. - Michal Drewniak
  7. 2005p. - Łukasz Siedlecki
  8. 1964p. - CC PL
  9. 1946p. - Adrian Wieprzkowicz
  10. 1901p. - Mikbac
  11. 1744p. - rafalszastok
  12. 1734p. - Anonim 3619784
  13. 1586p. - Dawid128
  14. 1520p. - Marcin Putra
  15. 1480p. - ssynowiec
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!

...