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

Odpowiednik cout << setprecision w c#

0 głosów
1,396 wizyt
pytanie zadane 10 września 2016 w C# przez DeBos123 Nałogowiec (44,950 p.)
edycja 10 września 2016 przez DeBos123
Witam, czy w c# jest jakiś odpowiednik cout << setprecision z c++, ponieważ gdy udaje mi się wypisać "całą" liczbę typu double to wypisuję np 100 cyfr, ale po 10 cyfrze są same zera.

2 odpowiedzi

0 głosów
odpowiedź 10 września 2016 przez MichałK Początkujący (480 p.)
edycja 10 września 2016 przez MichałK
https://msdn.microsoft.com/pl-pl/library/dwhawy9k(v=vs.110).aspx

Zajrzyj tutaj.

Na przyklad:

liczba.ToString("D4");

dla liczb calkowitych.
komentarz 10 września 2016 przez DeBos123 Nałogowiec (44,950 p.)
Przy typie double pojawia się błąd. Czy jest jakiś sposób tego typu żeby to zrobić?
komentarz 10 września 2016 przez MichałK Początkujący (480 p.)
Jeśli chodzi o liczby zmiennoprzecinkowe to zamiast "D" należy użyć "F".

np: zmienna.ToString("F5");  ustawia liczbę miejsc po przecinku do 5.

Polecam zajrzeć pod podany wyżej link. W tej tabelce jest dużo innych fajnych formatów.
komentarz 10 września 2016 przez DeBos123 Nałogowiec (44,950 p.)
Dalej to nie jest to, ten format jest do miejsc po przecinku, a mi chodzi o coś takiego:https://www.youtube.com/watch?v=Rt1HnMdzINo#t=28m00s (28 minuta), o wypisanie całej liczby bez zapisu naukowego
komentarz 10 września 2016 przez MichałK Początkujący (480 p.)
Nie jestem pewien o co ci chodzi ale sprobuj .ToString("G100");

powinno wypisać 100 miejsc po przecinku, jak coś wstaw większą / mniejszą wartość.

Aha i jeśli zapisujesz tą liczbę do zmiennej typu double to pamiętaj ze ma ona ograniczoną precyzję do jakichś bodajże 15-16 miejsc po przecinku, więc dalej pojawią się same zera.
komentarz 10 września 2016 przez DeBos123 Nałogowiec (44,950 p.)
Chodzi o to żeby wypisać nie ileś po przecinku tylko zamiast 3 cyfr i zapisy naukowego wypisać 50 cyfr, żeby zobaczyć całą liczbę
komentarz 10 września 2016 przez MichałK Początkujący (480 p.)
Rozumiem ,ze jeżeli korzystasz z typu double to jednak chodzi o liczby po przecinku.
komentarz 10 września 2016 przez DeBos123 Nałogowiec (44,950 p.)
Właśnie nie chodzi o liczbu po przecinku, chodzi żeby wypisać 50-cyfrowy double, a nie zapis naukowy.
komentarz 10 września 2016 przez MichałK Początkujący (480 p.)
Skoro nie chodzi o liczby po przecinku to po co typ double w takim razie?

Proponuję przejść na liczby całkowite(int ,long itp) a później po prostuj .ToString("D50");

Jesli to nie pomoze to podaj jakas probke kodu, moze to troche rozjasni.
komentarz 10 września 2016 przez DeBos123 Nałogowiec (44,950 p.)
Double do tego bo ma limit do 303 cyfr chyba, a int do 15
0 głosów
odpowiedź 10 września 2016 przez adrian17 Mentor (355,220 p.)
Microsoft (R) Roslyn C# Compiler version 1.3.1.60621
> double d = 123456789123456789.12345;
> d.ToString()
"1,23456789123457E+17"
> d.ToString("F")
"123456789123457000,00"

To miałeś na myśli?

Jeśli pytasz o zera, to liczby zmiennoprzecinkowe z definicji mają ograniczoną precyzję, co widać tutaj.

Podobne pytania

0 głosów
1 odpowiedź 886 wizyt
pytanie zadane 28 grudnia 2019 w C# przez mZq Nowicjusz (150 p.)
+1 głos
1 odpowiedź 1,131 wizyt
pytanie zadane 2 sierpnia 2020 w C i C++ przez NieMaJuzNazw Użytkownik (890 p.)
0 głosów
2 odpowiedzi 1,375 wizyt
pytanie zadane 25 listopada 2018 w C i C++ przez Nutella159 Nowicjusz (120 p.)

93,800 zapytań

142,768 odpowiedzi

323,461 komentarzy

63,421 pasjonatów

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

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...