Questão nº 35
Questão de Tecnologia da Informação · FCC TRT-20 2016 (nº 35)
Considere o trecho de código em PL/SQL abaixo.
`1 BEGIN`
`2 DBMS_OUTPUT.put_line (ROUND (10.25));`
`3 DBMS_OUTPUT.put_line (ROUND (10.25, 1));`
`4 DBMS_OUTPUT.put_line (ROUND (10.23, 1));`
`5 DBMS_OUTPUT.put_line (ROUND (10.25, 2));`
`6 DBMS_OUTPUT.put_line (ROUND (10.25, -2));`
`7 DBMS_OUTPUT.put_line (ROUND (125, -2));`
`8 END;`
`9 /`
Considerando que os números à esquerda de 1 a 9 apenas indicam as linhas e que o código foi executado no banco de dados Oracle 12c, em condições ideais, o resultado apresentado após a execução do comando da linha
- A3 é 10.3 e da linha 4 é 10.2 (alternativa correta)
- B2 é 10.3
- C3 é 10.2
- D5 é 10.25 e da linha 6 é 11
- E7 é 1.25
Resposta comentada
Gabarito Alternativa A
A função ROUND em PL/SQL arredonda um número para um número específico de casas decimais. Se o segundo argumento (número de casas) for positivo, arredonda para aquela quantidade de casas após a vírgula; se for negativo, arredonda para a dezena, centena, milhar mais próxima, etc., antes da vírgula. A regra padrão é "arredondar para cima" (round half up) quando o dígito a ser arredondado é 5.
(A) Correta:
ROUND(10.25, 1)na linha 3: O dígito5na segunda casa decimal faz com que o2seja arredondado para cima, resultando em10.3.ROUND(10.23, 1)na linha 4: O dígito3na segunda casa decimal faz com que o2seja mantido, resultando em10.2.
(B) Incorreta: ROUND(10.25) na linha 2 arredonda para o inteiro mais próximo. Como 0.25 é menor que 0.5, o número é arredondado para baixo, resultando em 10, não 10.3.
(C) Incorreta: ROUND(10.25, 1) na linha 3 arredonda para 10.3, pois o 5 na segunda casa decimal arredonda o 2 para cima.
(D) Incorreta:
- A primeira parte (
ROUND(10.25, 2)na linha 5 é10.25) está correta, pois o número já tem duas casas decimais. - A segunda parte (
ROUND(10.25, -2)na linha 6 é11) está incorreta. O argumento-2significa arredondar para a centena mais próxima (múltiplo de ).10.25está muito mais próximo de0do que de100. Portanto, o resultado é0. A armadilha aqui é não compreender que um valor negativo no segundo argumento arredonda para as casas antes da vírgula, para o múltiplo de mais próximo.
(E) Incorreta: ROUND(125, -2) na linha 7 arredonda para a centena mais próxima. 125 está exatamente no meio entre 100 e 200. Pela regra "round half up", ele é arredondado para 200, não 1.25.
Fonte: FCC TRT-20 2016 Técnico Judiciário - Área Apoio Especializado - Especialidade Tecnologia da Informação (Caderno Tipo 1). Reproduzida para fins de estudo.