A method for charging a battery, characterized by comprising: acquiring a battery temperature of the battery (S110); determining a charging current value I n for the n th charging stage of the battery, according to the acquired battery temperature and a preset mapping relationship between different temperature ranges and charging current values I, wherein 1<n≤N, N is the total number of charging stages, and a preset charging cut-off voltage value V n for the n th charging stage is greater than V n-1 (S120); wherein the mapping relationship comprises a correspondence relationship among charging cut-off voltage values, temperature ranges and charging current values; charging the battery with I j in the j th charging stage, wherein 1≤j≤N (S130); acquiring a voltage value of the battery at the current time (S140); if the voltage value at the current time is less than V j , continuing to charge the battery with I j (S150); if the voltage value at the current time is not less than V j and j<N, charging the battery with I j+1 (S150); if the voltage value at the current time is not less than V j and j=N, stopping charging the battery (S150); wherein charging the battery with I j (S130) comprises: acquiring a voltage value before charging the battery; determining a charging cut-off voltage value in the charging cut-off voltage values that is greater than the voltage value before charging the battery and has a smallest difference from the voltage value before charging the battery; determining a charging cut-off current value corresponding to the determined charging cut-off voltage value as I j ; and charging the battery with I j . acquiring a battery temperature of the battery (S110); determining a charging current value I n for the n th charging stage of the battery, according to the acquired battery temperature and a preset mapping relationship between different temperature ranges and charging current values I, wherein 1<n≤N, N is the total number of charging stages, and a preset charging cut-off voltage value V n for the n th charging stage is greater than V n-1 (S120); wherein the mapping relationship comprises a correspondence relationship among charging cut-off voltage values, temperature ranges and charging current values; charging the battery with I j in the j th charging stage, wherein 1≤j≤N (S130); acquiring a voltage value of the battery at the current time (S140); if the voltage value at the current time is less than V j , continuing to charge the battery with I j (S150); if the voltage value at the current time is not less than V j and j<N, charging the battery with I j+1 (S150); if the voltage value at the current time is not less than V j and j=N, stopping charging the battery (S150); wherein charging the battery with I j (S130) comprises: acquiring a voltage value before charging the battery; determining a charging cut-off voltage value in the charging cut-off voltage values that is greater than the voltage value before charging the battery and has a smallest difference from the voltage value before charging the battery; determining a charging cut-off current value corresponding to the determined charging cut-off voltage value as I j ; and charging the battery with I j . acquiring a voltage value before charging the battery; determining a charging cut-off voltage value in the charging cut-off voltage values that is greater than the voltage value before charging the battery and has a smallest difference from the voltage value before charging the battery; determining a charging cut-off current value corresponding to the determined charging cut-off voltage value as I j ; and charging the battery with I j . <EOS>