Jeśli mam zmienną typu zmiennopozycyjnego i chcę uzyskać wynik z 3 cyframi po przecinku dziesiętnym, użyj iostream w C++. Jak mogę to zrobić?Strumień C++ z 3 cyframi po przecinku. W jaki sposób?
Odpowiedz
Ten jeden ma pokazać „13,141”
#include <iostream>
#include <iomanip>
using namespace std;
int main(){
double f = 13.14159;
cout << fixed;
cout << setprecision(3) << f << endl;
return 0;
}
można dostać stałą liczbę cyfr ułamkowych (i wieloma innymi) za pomocą nagłówka iomanip
. Na przykład:
#include <iostream>
#include <iomanip>
int main() {
double pi = 3.141592653589;
std::cout << std::fixed << std::setprecision(2) << pi << '\n';
return 0;
}
wyjście wola:
3.14
Należy zauważyć, że zarówno fixed
i setprecision
zmienić strumień na stałe tak, jeśli chcesz, aby zlokalizować efekty można zapisać informacje wcześniej i przywrócić go później :
#include <iostream>
#include <iomanip>
int main() {
double pi = 3.141592653589;
std::cout << pi << '\n';
// Save flags/precision.
std::ios_base::fmtflags oldflags = std::cout.flags();
std::streamsize oldprecision = std::cout.precision();
std::cout << std::fixed << std::setprecision(2) << pi << '\n';
std::cout << pi << '\n';
// Restore flags/precision.
std::cout.flags (oldflags);
std::cout.precision (oldprecision);
std::cout << pi << '\n';
return 0;
}
wyjście to jest:
3.14159
3.14
3.14
3.14159
Dzięki za pokazanie, jak zapisać i przywrócić ustawienia strumienia, bardzo pomocne. – bhaller
użyj tego wiersza "using namespace std;" dla bardziej czystego kodu –
@ Khaled, istnieją argumenty za i przeciw temu, które są na tyle złożone, że nie mieszczą się w polu komentarza :-) Ja sam wolę jawne przestrzenie nazw dla wszystkich, ale najprostsze programy lub, co najmniej, użycie określonych elementów * w * przestrzeni nazw zamiast importowania całej partii. Jednak ta konkretna dyskusja jest styczna z pytaniem i moją odpowiedzią. – paxdiablo
- 1. Drukowanie float PHP z 3 cyframi po przecinku?
- 2. NSNumberFormatter przyjmuje tylko 3 miejsca po przecinku
- 3. Pokaż dwie cyfry po przecinku w C++
- 4. W Perlu, w jaki sposób mogę ograniczyć liczbę miejsc po przecinku, ale bez końcowych zer?
- 5. Przybliżenie do 3 miejsc po przecinku w Pythonie
- 6. W jaki sposób wyświetlasz sekcję zwykłego tekstu w przecinku github?
- 7. Zaokrąglanie w dół do 2 miejsc po przecinku w C#
- 8. Precyzja podwójnego po przecinku
- 9. numer formatu z 3 miejscami po przecinku, dziesiętnym separatorem tysięcy i przecinkami po tym
- 10. Integer z 24 cyframi
- 11. Po prostu ciekawy, w jaki sposób wokół MustOverride w C#?
- 12. Jak zaokrąglić liczbę do dwóch miejsc po przecinku w C#?
- 13. Zaokrąglenie do 1 miejsca po przecinku w C#
- 14. Strumień C++ do pamięci
- 15. Zaokrąglanie zmienną dokładnością do dwóch miejsc po przecinku C#
- 16. MySQL Zobacz miejsca po przecinku
- 17. Android - zaokrąglenie do 2 miejsc po przecinku
- 18. Obcięcie Dwa miejsca po przecinku bez zaokrąglania
- 19. dwóch miejsc po przecinku printf()
- 20. Strumień kodów Unicode z bajtów w C?
- 21. jQuery funkcja do formatowania liczb przecinkami i cyframi dziesiętnymi
- 22. C# Konwersja przecinku ciąg z określenia formatu
- 23. Autoryzacja numeru telefonu w Firebase (z cyframi)
- 24. zaokrąglić do 2 miejsc po przecinku
- 25. Zaokrąglanie do dwóch miejsc po przecinku w Pythonie 2.7?
- 26. Format dokładnością do dwóch miejsc po przecinku
- 27. ClosedXML: Praca z procentami, 1 miejsce po przecinku i zaokrągleniem?
- 28. Jak analizować strumień HTTP MJPEG w C++?
- 29. Jak wstawić znak nowej linii po przecinku w `), (` z
- 30. Pokazuję liczbę z 2 miejsc po przecinku w widoku siatki
Dzięki. To było dla mnie pomocne. – ozeron
To działa dla wersji 3.14159, ale nie działa dla 13.14159. Twoje rozwiązanie działa tylko dla liczb mniejszych niż 10. – mantler
@manler Masz rację, mój oryginalny post nie, ale ostatni (ten, który edytowałem 11 minut temu) działa poprawnie. Zweryfikowałem to za pomocą 2 i 3 cyfr przed kropką dziesiętną, i wypisuje 3 cyfry zgodnie z oczekiwaniami. – dasblinkenlight