Ho una matrice di numeri decimali come stringhe, ho bisogno di ottenere la somma dell'array, ho provato a scorrere l'array e cambiare ogni numero in un float ma quello restituisce solo un numero intero ogni volta e ho bisogno che la somma sia un decimale. A quale tipo di dati dovrei cambiare la stringa, e il modo migliore per ottenere la somma dell'array sarebbe utile.Come ottenere la somma di un array di stringhe in rubino
risposta
Hai solo bisogno di fare
array.map(&:to_f).reduce(:+)
Spiegazione: -
# 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 }
Bella risposta. Penso che l'OP trarrebbe beneficio da qualche spiegazione. – joews
["Se non si specifica esplicitamente un valore iniziale per' memo', il primo elemento della raccolta viene utilizzato come valore iniziale di 'memo'."] (Http://ruby-doc.org/core-2.1 .2/Enumerable.html # method-i-inject) quindi non è necessario specificare l'iniziale '0.0'. –
@muistooshort È successo in qualche modo. Non so perché :(. Comunque, l'ho corretto. Grazie per il commento –
a = ["12.4", "48.2"]
a.inject(0) {|s,e| s.to_f + e.to_f } #=> 60.6
inject
consente di accumulare un valore in tutto. Documentazione di #inject
penso che si può utilizzare una delle seguenti dichiarazioni:
array.map(&:to_f).reduce(:+)
array.sum(&:to_f)
- In primo luogo abbiamo messo stringa di numeri in array di stringhe
- In secondo luogo abbiamo cambiare l'intero blocco in numeri
- Quindi riassumiamo tutto se Array è vuoto, quindi non otteniamo nulla ma 0
String in somma
str='1,2,3,4'.split(',').map(&:to_i).inject(0,:+) #1+2+3+4=10
array di numeri in somma
num=[1,2,3,4].inject(0,:+)#=>10
p str
p num
- 1. unire o somma 2 allineamenti di "chiavi" in rubino
- 2. Ottenere la lunghezza di array di stringhe di lunghezza sconosciuta
- 3. Intervallo di date in un array, rubino
- 4. Somma di array Javascript
- 5. somma esatta di un lungo array
- 6. Come ottenere la somma totale di NSNumber da un NSArray?
- 7. Comportamento diverso durante la conversione di un elenco di stringhe in un array di stringhe
- 8. Come ottenere la somma di timedelta in Python?
- 9. Somma condizionale in Array
- 10. ottenere la directory di file istanziato un rubino di classe
- 11. Come trovare la somma di una stringa in un elenco
- 12. Somma di array unica minima
- 13. Array di stringhe su array di Android
- 14. Somma dell'intervallo di numeri in un array (funzione di richiamata)
- 15. Somma cumulativa di array in Ruby
- 16. Come mettere in bolla l'ordinamento di un array di stringhe?
- 17. Stringhe come chiavi di array in javascript
- 18. array di stringhe di riferimento in stringhe android.xml
- 19. unione di hash rubino con array di valori in un altro hash con array di valori
- 20. Come ottenere la dimensione di un array in LUA?
- 21. Come convertire la matrice di stringhe in NSData, NSData in Array di stringhe?
- 22. Come posso ottenere una somma di array di tuple in scala
- 23. valori Somma da un array in JavaScript
- 24. ordina un array multidimensionale in rubino
- 25. Stringhe di rubino con variabili incorporate
- 26. Ottenere la lunghezza di un array 'denominato'?
- 27. Divisione di un array in parti uguali in rubino
- 28. Ricerca della somma del sub-array in un array intero
- 29. - trova la sottrazione minima tra la somma di due array
- 30. Come ottenere la somma di ogni riga e somma di ogni colonna nelle matrici sparse di Scipy (csr_matrix e csc_matrix)?
Che cosa è "numeri decimali matrice come stringhe"? È un array, un numero o una stringa? Devi migliorare il tuo inglese per farti capire. – sawa
Sembra che tu abbia provato qualcosa, ma non è chiaro al 100% di cosa si tratta. La cosa più semplice da fare è mostrare del codice, incluso un esempio di input, e cosa vorresti che fosse l'output. –
Quando fai una domanda come questa, aiuta se mostri l'input di esempio e l'output che vuoi, oltre al codice che hai scritto per cercare di risolvere il problema. Senza queste cose sembra davvero che tu stia cercando qualcuno che scriva il codice per te. –