Respostas:
TRUNC()
foi projetado para remover a parte decimal de qualquer número imediatamente e sem nenhuma modificação na parte não decimal.
Portanto, conforme a resposta de LinYan , você só precisa usar:
TRUNC(A1)
para obter a parte inteira do valor em A1
A1-TRUNC(A1)
para obter a parte fracionária do valor em A1
Ao contrário FLOOR()
, TRUNC()
funciona em números positivos e negativos sem a necessidade de ajuste e funciona da mesma maneira no Microsoft Excel e no LibreOffice.
FLOOR()
requer que o parâmetro de significância tenha o mesmo sinal que o número que está sendo processado (ou então gerará um erro); portanto, 1
no final teria que ser alterado -1
para processar números negativos, ou você poderá inserir SIGN()
e complicar ainda mais a fórmula.
E, no OpenOffice e no LibreOffice, FLOOR()
também possui um terceiro parâmetro "mode" adicional (comparado ao Excel) que altera os resultados que a função retorna para números negativos.
você pode tentar a FLOOR
função, floor(A1,1)
para parte inteira de A1, A1-floor(A1,1)
para parte decimal de A1.
Por exemplo, imagine A1 como 167.583:
int(A1)
daria 167 e
mod(A1,1)
daria 0,583.
int(1.6) === 1
e int(-1.6) === -2
... Mas trunc(decimal;0)
funciona corretamente para ambos.
Não pense que há uma função específica para fazer isso, no entanto, aninhando um casal você pode.
Supondo que você esteja tentando retornar o valor à direita do decimal para a célula A1, a fórmula seria:
=MID(A1,SEARCH(".",A1,1)+1,LEN(A1))
Efetivamente, o que você está fazendo aqui é usar a função MID para retornar um número de caracteres começando no ponto decimal. Todas as três referências a A1 precisam ser atualizadas para cada célula que você está direcionando para que funcione corretamente.
=RIGHT(TEXT(ABS(A1)-INT(ABS(A1));",00");2)
isso não seria perfeito e estético também?