Como dividir um número em múltiplas partes para que a soma resultante seja igual à entrada?

Eu estou tentando dividir um número em várias partes para que a soma da parte seja igual ao número de entrada.

Se eu tiver 3,99 e precisar dividir em duas partes, a saída esperada é 2 e 1,99 (2 + 1,99 = 3,99)

E se eu precisar dividir 3,99 em 3 partes, a saída esperada é 1,3, 1,3 e 1,39 (1,3 + 1,3 + 1,39 = 3,99)

Eu consegui gerar 2,99 e 1 para o primeiro exemplo e consegui 1,99, 1 e 1 para o segundo exemplo. No entanto, em ambos os casos, os resultados estão muito longe da saída esperada.

Preciso dividir as cobranças postais em itens de linha separados. O resultado pode ser igualmente dividido ou desigualmente dividido, garantindo que a soma das diferentes partes seja igual ao número de entrada.

Aqui estão alguns outros exemplos:

3.99 divided in 3 parts: 1.33, 1.33, 1.33
3.98 divided in 3 parts: 1.33, 1.33, 1.32
3.97 divided in 3 parts: 1.32, 1.32, 1.33
3.96 divided in 3 parts: 1.32, 1.32, 1.32
3.95 divided in 3 parts: 1.32, 1.32, 1.31

questionAnswers(3)

yourAnswerToTheQuestion