Mam tablicę liczb dziesiętnych jako ciągi, potrzebuję uzyskać sumę tablicy, Próbowałem iteracji nad tablicą i zmieniając każdą liczbę na float, ale to po prostu zwraca liczbę całkowitą za każdym razem i potrzebuję sumy w postaci dziesiętnej. Do jakiego typu danych powinienem zmienić ciąg, a najlepszy sposób uzyskania sumy tablicowej byłby pomocny.Jak uzyskać sumę tablicę ciągów w ruby
Odpowiedz
Trzeba tylko zrobić
array.map(&:to_f).reduce(:+)
Objaśnienie: -
# it give you back all the Float instances from String instances
array.map(&:to_f)
# same as
array.map { |string| string.to_f }
array.map(&:to_f).reduce(:+)
# is a shorthand of
array.map(&:to_f).reduce { |sum, float| sum + float }
Dobra odpowiedź. Sądzę, że OP zyskałby na pewnym wytłumaczeniu. – joews
["Jeśli nie określisz jawnie wartości początkowej dla' memo', to pierwszy element kolekcji jest używany jako wartość początkowa 'memo'."] (Http://ruby-doc.org/core-2.1 .2/Enumerable.html # method-i-inject), więc nie trzeba określać początkowego "0.0". –
@muistooshort Tak się stało. Nie wiem dlaczego :(Ale tak, poprawiłem to.Dziękuję za komentarz –
a = ["12.4", "48.2"]
a.inject(0) {|s,e| s.to_f + e.to_f } #=> 60.6
inject
pozwala na zbieranie wartości w poprzek. Dokumentacja #inject
myślę, że można użyć jednej z następujących stwierdzeń:
array.map(&:to_f).reduce(:+)
array.sum(&:to_f)
- Najpierw stawiamy ciąg liczb do tablicy ciągów
- drugie możemy zmienić cały blok w liczbach
- Następnie podsumowujemy wszystko, jeśli macierz jest pusty, nie otrzymujemy zero, ale 0
String do sumy
str='1,2,3,4'.split(',').map(&:to_i).inject(0,:+) #1+2+3+4=10
Array liczb w sumie
num=[1,2,3,4].inject(0,:+)#=>10
p str
p num
- 1. Jak przeszukiwać tablicę w Ruby?
- 2. Jak uzyskać skumulowaną sumę
- 3. Jak przekonwertować tablicę ciągów na długą tablicę?
- 4. Ruby: Jak pogrupować tablicę Ruby?
- 5. Jak fragmentować tablicę w Ruby
- 6. Jak uzyskać sumę plików w katalogu?
- 7. Jak dodać tablicę ciągów w obiekcie JSON?
- 8. Jak utworzyć tablicę ciągów w C?
- 9. Jak przekonwertować tablicę ciągów na tablicę enum w java
- 10. Jak uzyskać sumaryczną sumę numpy array w miejscu
- 11. formatować tablicę ciągów argumentów
- 12. Jak mogę uzyskać sumę tablic krotek w Scala
- 13. Konwertuj tablicę ciągów na tablicę bajtów
- 14. Jak uniknąć interpolacji ciągów ruby?
- 15. Szyny, Ruby, jak sortować tablicę?
- 16. Jak zrobić "późny" interpolacja ciągów w Ruby
- 17. Jak uzyskać całkowitą sumę NSNumber z NSArray?
- 18. Iteracja poprzez tablicę ciągów w Javie
- 19. Porównywanie dwóch ciągów ruby
- 20. Jak uzyskać tablicę obrazów?
- 21. Parsowanie ciągów URL w Ruby
- 22. Jak uzyskać tablicę mpf?
- 23. Jak wydrukować wielowymiarową tablicę w ruby?
- 24. Jak zrobić dynamiczną tablicę wielowymiarową w ruby?
- 25. Jak przekonwertować tablicę ciągów na tablicę bajtów? (java)
- 26. Jak zadeklarować tablicę ciągów o nieznanym rozmiarze?
- 27. Podziel ciąg na tablicę ciągów
- 28. Tablica ruby do konwersji ciągów znaków
- 29. Ruby, Interpolacja tablicę łańcuchów
- 30. Jak przekonwertować tablicę łańcuchów na tablicę symboli?
co jest "tablica liczb dziesiętnych jako łańcuchy"? Czy jest to tablica, numer lub ciąg znaków? Musisz poprawić swój angielski, aby zrozumieć siebie. – sawa
Wygląda na to, że próbowałeś czegoś, ale nie jest w 100% jasne, co to jest. Najłatwiej jest pokazać kod, w tym przykładowe wejście i to, co chciałbyś otrzymać. –
Gdy zadajesz takie pytanie, pomocne jest pokazanie przykładowego wejścia i żądanego wyniku, a także kodu, który napisałeś, aby spróbować rozwiązać problem. Bez tych rzeczy wygląda na to, że łowisz, żeby ktoś napisał dla ciebie kod. –