Função de intervalo decimal

Crie uma função que possa receber 1, 2 ou 3 argumentos: 1 sendo o início, 2 sendo o fim e 3 sendo o passo, e retorne um array. Ela deve ser capaz de retornar valores de ponto flutuante.

Exemplos

Default Values Start = 0, Step = 1
drange(1.2, 5.9, 0.45) ➞ [1.20, 1.65, 2.10, 2.55, 3.00, 3.45, 3.90, 4.35, 4.80, 5.25, 5.70]
// start = 1.2 stop = 5.9 and step = 0.45
//1.2, 1.2+0.45=1.65,1.65+0.45=2.1,...,5.7 Should be less than 5.9

drange(10) ➞ [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
// start = 0 ,  stop = 10  and step = 1
//0,0+1=1,...,9                          Should be less than 10.

drange(1, 7, 1.2) ➞ [1.0, 2.2, 3.4, 4.6, 5.8]
// start = 1  stop = 7 and step = 1.2
// 1, 1+1.2=2.2, 2.2 + 1.2=3.4,...5.8   Should be less than 7.

Notas

Sempre arredonde os valores para o número com mais dígitos decimais (por exemplo, no primeiro exemplo, a resposta deve ser sempre arredondada para 2 dígitos. No segundo, deve ser arredondada para 0 dígitos e, no terceiro, para 1 dígito).