Wartość argumentu

0

Witam , napisałem funkcje która oddziela część całkowitą oraz ułamkową. Wszystko działa poprawnie , ale chciałbym się zapytać jak uczynić aby ta funkcja zawsze przyjmowała tylko nieujemną liczbę rzeczywistą.

#include <cmath>
using namespace std;

unsigned  fraction(double & integral,double & fractional,double number)
{

     integral=round(number);        
     fractional=abs(integral-number);

}
1

Działa poprawnie? Ma zwracać unsigned, a nic nie zwraca. Co do pytania, to nie ma za bardzo jak - nie ma takiego typu. Mógłbyś użyć Concepts, ale to jest jeszcze eksperymentalne. Możesz też, tak jak zresztą Zrobiłeś, policzyć moduł liczby.

1
  1. Dla mnie ten kod nie ma czystości, modyfikowanie argumentów to ostateczność, a modyfikowanie i zwracanie to już całkiem. Zwracaj tylko struct (które sobie zaprojektuj)
  2. Że bezwzględnie "działa dobrze", to Ci się tylko wydaje, wyłoży się np na dużych liczbach.
0

Że bezwzględnie "działa dobrze", to Ci się tylko wydaje, wyłoży się np na dużych liczbach.

Dlaczego?

0
lion137 napisał(a):

Że bezwzględnie "działa dobrze", to Ci się tylko wydaje, wyłoży się np na dużych liczbach.

Dlaczego?

Odejmowanie dużych doubli

0

Proponowałby napisać testy i potem twierdzić, że działa dobrze.
A nie działa dobrze z co najmniej z 3 powodów (napisz testy by dowiedzieć się z jakich).

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0