W C# typ podwójny Jak ustawić liczbę cyfr po punkcie, potrzebuję tylko 4. dziękuję.Ustaw liczbę cyfr po punkcie podwójnie
Odpowiedz
Nie możesz. Binary floating point nie działa w ten sposób. Możesz format podwoić w ten sposób (np. Używając "f4"
jako ciągu formatu), ale jeśli masz do czynienia z wartościami, które mają naturalną liczbę dziesiętnych miejsc, to powinieneś raczej używać decimal
zamiast tego. Czy możesz podać nam więcej informacji na temat tego, co reprezentują twoje wartości?
im robi równości 2 punkty i tam x względem wartości są 5,0000 i 4.999999996 i potrzebuję tego. –
@Bass: Jeśli przeprowadzasz test równości, to odpowiedź nobugza jest prawdopodobnie właściwą drogą. Nadal zastanawiałbym się, czy zamiast tego użyć dziesiętnego - zależy to od rodzaju wartości, jakie posiadasz. –
Nie można ustawić liczby cyfr po punkcie na podwójnym bezpośrednio.
Możesz zmienić reprezentację ciągów podwójnych za pomocą ciągu formatu.
Przykładem może być:
string.Format("{0:0.####}", number);
Albo jak Jon Skeet zaznacza:
number.ToString("f4")
to wykorzystać do porównywania dwóch liczb zmiennoprzecinkowych do 4 cyfr we frakcji:
if (Math.Abs(a - b) < 1E-4) {
// close enough
//...
}
Jeśli chcesz mieć absolutną pewność, że są równe, to powinno być Double.epsilon zamiast 1e-4. Jeśli chcesz powiedzieć, że są "wystarczająco blisko" równe, to znaczy, że kod jest w porządku. – zebrabox
Double.Epsilon nie może działać tak jak jest, jest o wiele za mały. Odpowiedni epsilon jest podobny do * 1E-15, ale musi zostać zwiększony o błędy zebrane przez każdą operację FP. –
- 1. zmienną liczbę cyfr w formacie ciąg
- 2. Dlaczego zmienna float zapisuje wartość przez cięcie cyfr po punkcie w dziwny sposób?
- 3. Podwójnie do dziesiętnego bez zaokrąglania po 15 cyfrach
- 4. ustaw maksymalną liczbę linii uilabel
- 5. Jak sformatować liczbę przecinkami i określoną dokładnością cyfr w Pythonie
- 6. Dlaczego: help ignore: ustaw liczbę w .vimrc?
- 7. Java: usunąć wszystkie znaki po punkcie
- 8. istnieje niejawna bariery, po omp krytycznym punkcie
- 9. Jak obliczyć liczbę znaczących cyfr dziesiętnych C++ double?
- 10. Policz liczbę x, która ma sumę cyfr równą sumie cyfr x * m
- 11. Jak uzyskać liczbę cyfr po przecinku w kolumnie swobodnej w ms sql?
- 12. Wydrukuj zmienną liczbę cyfr podwójnego za pomocą printf
- 13. Jak podzielić liczbę na jej cyfr w Scala
- 14. Ustaw maksymalną liczbę linii tekstu dla EditText
- 15. Przewidywanie liczby cyfr mnożenia
- 16. MYSQL: DECIMAL z dokładnością do 10 cyfr po przecinku
- 17. Znajdź najmniejszą liczbę utworzoną przez dwóch cyfr podzielna przez daną liczbę
- 18. Zaokrąglij podwójnie do int
- 19. Podwójnie jako prawda/fałsz
- 20. C++ podwójnie długo długo
- 21. Podwójnie zagnieżdżone zmienne EL?
- 22. Python - liczba cyfr w wykładniku
- 23. Jak usunąć wszystkie liczby po punkcie w PHP
- 24. Metoda WCF o nazwie podwójnie
- 25. Maksymalna liczba cyfr po kropce dziesiętnej przy użyciu BigDecimal
- 26. Pobieranie próbek w r bez następujących po sobie identycznych cyfr
- 27. kombinatorów ustalonym punkcie C++
- 28. Ustaw min, max i liczbę kroków na wykresie radarowym.js
- 29. Ustaw maksymalną liczbę wątków w czasie wykonywania na numpy/openblas
- 30. Podwójnie za darmo lub korupcja
inputValue = Math.Round (inputValue, 4); Adaptacja http://stackoverflow.com/questions/2357855/round-double-in-two-decimal-places-in-c – jade290