• 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.

+1 głos
112 wizyt
pytanie zadane 23 października 2021 w PHP przez stanislawruszkowski Obywatel (1,250 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,100 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 Mędrzec (179,170 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 (41,900 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ź 97 wizyt
0 głosów
1 odpowiedź 124 wizyt
pytanie zadane 25 kwietnia 2019 w Matematyka, fizyka, logika przez DODO Bywalec (2,950 p.)
0 głosów
1 odpowiedź 121 wizyt
pytanie zadane 27 lutego 2018 w Matematyka, fizyka, logika przez Jiin Obywatel (1,390 p.)

88,699 zapytań

137,306 odpowiedzi

306,724 komentarzy

58,890 pasjonatów

Motyw:

Akcja Pajacyk

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

Sklep oferujący ćwiczenia JavaScript, PHP, rozmowy rekrutacyjne dla programistów i inne materiały

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...