- Categorias:
Funções numéricas (Arredondamento e truncamento)
FLOOR¶
Retorna valores de input_expr arredondados para o inteiro igual ou menor mais próximo, ou para o valor igual ou menor mais próximo com o número especificado de casas após o ponto decimal.
- Consulte também:
Sintaxe¶
Argumentos¶
input_exprThe value or expression to operate on. The data type should be one of the numeric data types, such as DECFLOAT, FLOAT, or NUMBER.
scale_exprThe number of digits the output should include after the decimal point.
O padrão
scale_expré zero, o que significa que a função remove todos os dígitos após o ponto decimal.Para obter mais informações sobre escalas negativas, consulte as Notas de uso abaixo.
Retornos¶
O tipo de retorno é baseado no tipo de entrada:
Se a expressão de entrada for um FLOAT, o tipo retornado será um FLOAT.
If the input expression is DECFLOAT, the returned type is DECFLOAT.
Se a expressão de entrada for um NUMBER, o tipo retornado será um NUMBER.
Se a escala de entrada for constante:
Se a escala de entrada for positiva, o tipo retornado terá uma escala igual à escala de entrada e terá uma precisão grande o suficiente para abranger qualquer resultado possível.
Se a escala de entrada for negativa, o tipo retornado terá uma escala de 0.
Se a escala de entrada não for constante, a escala do tipo retornado será a mesma que a da expressão de entrada.
Se a escala for zero, então o valor é efetivamente um INTEGER.
Por exemplo:
O tipo de dados retornado por FLOOR(3.14::FLOAT, 1) é FLOAT.
O NUMBER retornado por FLOOR(3.14, 1) tem escala 1 e precisão de pelo menos 3.
O NUMBER retornado por FLOOR(-9.99, 0) tem escala 0 e precisão de pelo menos 2.
O NUMBER retornado por FLOOR(33.33, -1) tem escala 0 e precisão de pelo menos 3.
Notas de uso¶
Se
scale_exprfor negativo, então ele especificará o número de casas antes do ponto decimal para ajustar o número. Por exemplo, se a escala for -2, então o resultado será um múltiplo de 100.Se
scale_exprfor maior do que a escala de expressão de entrada, a função não tem qualquer efeito.Se o
input_exprou oscale_exprfor NULL, então o resultado será NULL.Quando os números negativos são arredondados para baixo, o valor está mais longe de 0. Por exemplo, FLOOR(-1,1) é -2, e não -1.
Se o arredondamento do número para menos gerar o número fora do intervalo de valores do tipo de dados, um erro será retornado.
Exemplos¶
Este exemplo demonstra a função sem o parâmetro scale_expr:
Este exemplo demonstra a função com o parâmetro scale_expr, inclusive com a escala ajustada para números negativos:
Criar e preencher uma tabela:
Saída: