/ / Czy możesz zaokrąglić wartość do 2 miejsc po przecinku w C? - c, int, dziesiętny, zaokrąglanie

Czy możesz zaokrąglić wartość do 2 miejsc po przecinku w C? - c, int, dziesiętne, zaokrąglenie

Obliczam objętość pokoju i dostałemliczba z 6 miejscami po przecinku. Zastanawiałem się, czy mogę zmniejszyć tę wartość tylko do 2 miejsc po przecinku. Wynikowa liczba dla wolumenu pochodzi z 5 różnych zmiennych, których nie wiem, czy ma to znaczenie w tej sytuacji.

Odpowiedzi:

4 dla odpowiedzi № 1

Rozwiązanie @Rashmi zapewnia ładnie zaokrąglone pokaz o wartości zmiennoprzecinkowej.
Nie zmienia wartości oryginalnego numeru.

Jeśli ktoś chce zaokrąglić wartość zmiennoprzecinkową do najbliższej 0.01 posługiwać się round()

#include <math.h>
double d = 1.2345;
d = round(d * 100.0)/100.0;

Uwagi:
Posługiwać się roundf() dla float.
Z powodu ograniczeń FP zaokrąglona wartość może nie być dokładnie wielokrotność 0.01, ale będzie najbliższym numerem DF, na który pozwala dana platforma.


3 dla odpowiedzi № 2

Możesz użyć printf („%. 2f”, 20.233232)


1 dla odpowiedzi nr 3

Może być pływająca funkcja round ()(ha ha) gdzieś w bibliotece matematycznej (nie mam pod ręką referencji C.) Jeśli nie, szybką i brudną metodą byłoby pomnożenie liczby przez 100 (przesunięcie punktu dziesiętnego w prawo o 2), dodaj 0,5, skróć do liczby całkowitej i podziel przez 100 (przesunięcie punktu dziesiętnego w lewo o 2).


0 dla odpowiedzi nr 4

Wartość zmiennoprzecinkowa 0.01 nie można wyrazić w IEEE 754, więc nadal otrzymujesz więcej miejsc po przecinku, niż prosiłeś.

Lepszy sposób: po prostu nie pokaz dodatkowe miejsca po przecinku w twoim programie. Wątpię, żebyś dostał 6 miejsc po przecinku; może to być wartość domyślna dla zwykłego

printf ("too much accuracy in %f!", yourFloat);

Jeśli tak, użyj %.2f do wyświetlenia.

Nieco gorzej, w zależności od liczbzakres i rodzaj obliczeń, które zamierzasz wykonać: pomnóż liczby zmiennoprzecinkowe przez 100, zaokrąglij i zapisz jako liczbę całkowitą. 100,00% gwarancji, że otrzymasz tylko dwie cyfry dokładności. Uważaj podczas dzielenia (będziesz luźny 2 cyfry, jeśli nie zostaną wykonane ostrożnie) i pomnożenie (ty zdobyć 2).