![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 74 Pomógł: 1 Dołączył: 5.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Jak zamienić wszystkie liczy ze zbioru na procenty, tak aby wartość zawsze równała się 100% a nie 99,99, 100,05%, itp. Załóżmy mamy Liczby 2,5,8 = 15 Zamieniamy na procenty Dla liczby 2 mamy round(((2 * 100) / 15), 1) = 13,33 = 13,3 Dla liczby 5 mamy round(((5 * 100) / 15), 1) = 33,33 = 33,3 Dla liczby 2 mamy round(((8 * 100) / 15), 1) = 53,33 = 53,3 Łacznie daje 13,3 + 33,3 + 53,3 = 99,6 Jak zrobić, żeby wartości składowe dawały zawsze wartość po zsumowaniu 100, czyli np: 13,4 + 33,4 + 53,2 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 36 556 Pomógł: 6314 Dołączył: 27.12.2004 ![]() |
Ostatnią wartosc masz wyliczać tak:
100 - suma_procentów_pozostałych_wartosci Wtedy nie bedziesz mial problemów. -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Ewentualnie pozostałą wartość (100 - suma pozostałych) po równo rozdzielasz do wszystkich wyników by uniknąć sporego przekłamania rzędu 0,4%. Oczywiście to tworzy dokładnie ten sam problem (0,4 może nie dać się ładnie rozłożyć), wtedy już resztę z reszty możesz dopisać do ostatniego wyniku - nie powinna to już być zbyt duża wartość.
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 307 Pomógł: 37 Dołączył: 9.11.2010 Skąd: Zielona Góra Ostrzeżenie: (0%) ![]() ![]() |
Najlepszym rozwiązaniem było by operowanie na większej dokładności tych liczb. Ale jeżeli nie masz takiej możliwości (dlaczego?) no to od 100 odejmij ostateczna sumę wyników, podziel to na ilość wartości dla których to liczysz i rozłóż równomiernie.
@Crozin-Kurcze, przepraszam ale nie przeczytałem Twojej wypowiedzi. Porponujemy dokładnie takie samo rozwiązanie ![]() Ten post edytował Uriziel01 1.12.2011, 13:12:05 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 74 Pomógł: 1 Dołączył: 5.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki za pomoc,
Zrobiłem w ten sposób, że zanim obliczam procenty robię sortowanie na tabli z liczbami od najmniejszej do największej. Następnie zamieniam wszystkie wartości na procenty oprócz ostatniej. Dla ostatniej odejmuje 100% - suma poprzednich. Dla największej wartości powinno być najmniejsze przekłamanie. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 29.04.2025 - 08:23 |