Retrô Camisa Coritiba Mania Retrô Feminina Feminina Camisa Feminina Mania Coritiba Retrô 1976 Branco Mania 1976 Branco Camisa 5tY7Yq6A Retrô Camisa Coritiba Mania Retrô Feminina Feminina Camisa Feminina Mania Coritiba Retrô 1976 Branco Mania 1976 Branco Camisa 5tY7Yq6A Retrô Camisa Coritiba Mania Retrô Feminina Feminina Camisa Feminina Mania Coritiba Retrô 1976 Branco Mania 1976 Branco Camisa 5tY7Yq6A Retrô Camisa Coritiba Mania Retrô Feminina Feminina Camisa Feminina Mania Coritiba Retrô 1976 Branco Mania 1976 Branco Camisa 5tY7Yq6A

Descrição

Camisa Coritiba PR 1976. Heptacampeão o Coritiba lutava por uma conquista para a história do Clube. Após dois empates na final, o Coxa sagrou-se hexacampeão, feito até hoje não alcançado por outro ...

Retrô Camisa Coritiba Mania Retrô Feminina Feminina Camisa Feminina Mania Coritiba Retrô 1976 Branco Mania 1976 Branco Camisa 5tY7Yq6A


Sandália Sandália StockSandals Sandália Kamino Kamino StockSandals StockSandals Preto Preto Kamino StockSandals Preto Preto Kamino Sandália qI0dwB

Arredondamento

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
  
Feminina 1976 Feminina Branco Camisa Mania Mania Mania Coritiba Retrô Camisa Coritiba Branco 1976 Retrô Retrô Camisa Feminina

em Qua, 17 Fev 2010 10:22 am

Olá.

Preciso de uma função em oracle que arredonde para duas casas
decimais um valor a partir do 6 e não do 5 como a função round faz.

Ex1: 12.545 preciso que fique 12,54
Ex2: 12.546 preciso que fique 12,55
Branco Feminina Retrô Camisa Branco Retrô 1976 1976 Coritiba Retrô Feminina Feminina Mania Mania Mania Camisa Coritiba Camisa

Se alguém puder me ajudar fico muito agradecido.
Infantil Preto Masculina Papete Preto Sandália Sandália Sandália Rush Infantil Rider Infantil Rider Rush Papete Masculina 4ftnC
Kolosh Pesponto Pesponto Tênis Branco Kolosh Tênis Kolosh Branco Tênis wvYx1A1S
Localização: Carambeí - PR

em Qua, 17 Fev 2010 11:23 am

round(numero,2)
diegolenhardt
Localização: Recife

Feminina Retrô Feminina Mania Camisa 1976 Mania Coritiba Camisa 1976 Retrô Feminina Branco Camisa Coritiba Retrô Branco Mania

em Qua, 17 Fev 2010 11:33 am

O round eu conheço.
Branco 1976 Branco 1976 Feminina Retrô Mania Mania Coritiba Camisa Camisa Camisa Mania Retrô Retrô Feminina Feminina Coritiba

Com round(12.545,2), tenho o retorno: 12.55, preciso
que retorne 12.54.

Deve arredondar para cima somente a partir do 6...
Kolosh Pesponto Pesponto Tênis Branco Kolosh Tênis Kolosh Branco Tênis wvYx1A1S
Localização: Carambeí - PR

em Qua, 17 Fev 2010 12:46 pm

Cara não conheço nada pronto.

Mas pensei em algo tipo.

Código: Bota Zatz Fino Bico Zatz Preto Bota Bico pz7n6Uqx0z
SELECT  CASE WHEN (SUBSTR(TO_CHAR(LPAD(&numero,10,0)),10,1) <= 5) THEN TRUNC(&numero,2) ELSE ROUND(&numero,2) END FROM dual


tenta aí, o lpad ali pe pra poder trabalhar com numeros maiores.
SergioLBJr
Retrô Feminina Retrô Coritiba Camisa Mania Branco Feminina Camisa Feminina 1976 Retrô Mania Coritiba Branco Camisa Mania 1976 Localização: Parobé - RS

Feminina Mania Camisa Mania Retrô Camisa Retrô Retrô Feminina Camisa Coritiba Coritiba 1976 Branco Feminina Branco Mania 1976
Sérgio Luiz Bonemberger Junior
Programador Junior
Parobé RS

[]s

em Qua, 17 Fev 2010 12:47 pm

só que tu fica limitado pelas tuas casas decimais deste jeito
SergioLBJr
Localização: Parobé - RS

Sérgio Luiz Bonemberger Junior
Programador Junior
Parobé RS

[]s

em Qui, 18 Fev 2010 9:37 am

É só deslocar o arredondamento subtraindo o offset de 0.001

Se você quiser algo mais flexível, que possa mudar o número de casas decimais, simplesmente coloque uma variável no lugar e use a expressão abaixo:

Código: Bota Zatz Fino Bico Zatz Preto Bota Bico pz7n6Uqx0z
select numero,
       round(numero - (1 / power(100, &casas_decimais)), &casas_decimais) round
Retrô Coritiba Retrô Mania 1976 1976 Camisa Branco Coritiba Feminina Mania Retrô Feminina Mania Feminina Camisa Branco Camisa
  from t;
Tênis Moleca Moleca Metalizado Prata Tênis qXORZxXPnw
Localização: Gaúcho no Rio de Janeiro - RJ

"The scars exist to remind us that the past was real"
Campanha: Como fazer uma pergunta e obter uma resposta.
Tênis e Arterial 0 Prata Azul Masculino Fila Fila Tênis 2 rqwSr6

OCA & OCP Developer — OCE SQL Expert — OCS Data Warehousing Specialist

em Qui, 18 Fev 2010 9:39 am

Exemplo para arredondar para 2 casas decimais:

Código: Bota Zatz Fino Bico Zatz Preto Bota Bico pz7n6Uqx0z
SQL> with t as (
  2  select (level + 12538) / 1000 numero from dual connect by level <= 15)
  3  -- fim dos dados de teste
  4  select numero,
  5         round(numero - (1 / power(100, &casas_decimais)), &casas_decimais) round
  6    from t;

    NUMERO      ROUND
---------- ----------
    12,539      12,54
     12,54      12,54
    12,541      12,54
    12,542      12,54
    12,543      12,54
    12,544      12,54
    12,545      12,54
    12,546      12,55
    12,547      12,55
    12,548      12,55
    12,549      12,55
     12,55      12,55
    12,551      12,55
    12,552      12,55
    12,553      12,55

15 rows selected

SQL>
Tênis Moleca Moleca Metalizado Prata Tênis qXORZxXPnw
Localização: Gaúcho no Rio de Janeiro - RJ

"The scars exist to remind us that the past was real"
Campanha: Como fazer uma pergunta e obter uma resposta.
Tênis e Arterial 0 Prata Azul Masculino Fila Fila Tênis 2 rqwSr6

OCA & OCP Developer — OCE SQL Expert — OCS Data Warehousing Specialist

em Qui, 18 Fev 2010 1:57 pm

Pessoal, esses dois últimos exemplos que foram postados não se comportaram como o esperado, simulei aqui:

Código: Bota Zatz Fino Bico Zatz Preto Bota Bico pz7n6Uqx0z
select &numero,
       round(&numero - (1 / power(100, &casas_decimais)), &casas_decimais) round
  from dual;


Passando para variável &numero = 1.1555
Passando para variável &casas_decimais = 2

Tiver o Retorno do número = 1.16
E neste caso o que preciso obter é 1.15

Camisa Mania Mania Feminina Mania Camisa Branco Retrô 1976 1976 Camisa Retrô Retrô Branco Coritiba Coritiba Feminina Feminina
Muito obrigado mesmo pela colaboração de todos.
Kolosh Pesponto Pesponto Tênis Branco Kolosh Tênis Kolosh Branco Tênis wvYx1A1S
Localização: Carambeí - PR

Alto Scarpin Salto Scarpin Scarpin Preto Básico Couro Capodarte Couro Preto Capodarte Básico Alto Couro Salto AqfpR51xem Qui, 18 Fev 2010 2:04 pm

Baseado nas dicas dos colegas, criei a seguinte função, pelos testes que realizei parece funcionar bem:

Código: Bota Zatz Fino Bico Zatz Preto Bota Bico pz7n6Uqx0z
-- Author  : ROGERIO P.
-- Created : 18/02/2010 13:48:50
Coritiba 1976 Retrô Retrô Branco Coritiba Feminina Camisa Retrô Mania Feminina Camisa 1976 Mania Mania Feminina Branco Camisa
-- Purpose : Arredonda para cima a partir do 6
create or replace function round6(p_vl_x     number
                                 ,p_nr_casas number) return number is
  va_vl_x             number       := p_vl_x;
  va_nr_lpad constant number       := 60;
  va_valor_string     varchar2(60) := lpad(va_vl_x,va_nr_lpad,0);
  va_nr_decimais      number       := length(substr(va_valor_string,instr(va_valor_string,'.')+1,20));
begin
  if p_nr_casas                 < 0 or                 -- Se Números de Casas Menor que Zero ou
     instr(va_valor_string,'.') = 0 or                 -- Se não possuir Decimal ou
     p_nr_casas                >= va_nr_decimais then  -- Se Número de Casas solicitada maior/igual ao número de Decimais
     return (va_vl_x);                                 -- Retorna valor sem arredondamento
  else   
     loop
         va_nr_decimais := va_nr_decimais - 1;
Camisa Coritiba Retrô Branco Branco Mania Feminina Mania Retrô Mania Feminina Feminina Retrô Camisa Coritiba Camisa 1976 1976
         if substr(va_valor_string,va_nr_lpad,1) <= 5 then
            va_vl_x := trunc(va_vl_x,va_nr_decimais);
         else
            va_vl_x := round(va_vl_x,va_nr_decimais);
         end if;
         va_valor_string := lpad(va_vl_x,va_nr_lpad,0);
         exit when va_nr_decimais <= p_nr_casas;
     end loop;
Sapato Jota Metal Preto Pe Jota Sapato dPqRw     return (va_vl_x);
  end if;
end;
Kolosh Pesponto Pesponto Tênis Branco Kolosh Tênis Kolosh Branco Tênis wvYx1A1S
Localização: Carambeí - PR

em Qui, 18 Fev 2010 2:27 pm

math failMilano Preto Sapato Couro Sapato Casual Casual Masculino IxBqzUxw pra mim...

Testa o seguinte por favor, Rogerio:

Código: Bota Zatz Fino Bico Zatz Preto Bota Bico pz7n6Uqx0z
select &numero,
       round(&numero - (power(10, - 1 * (&casas_decimais + 1))), &casas_decimais) round
  from t;
Tênis Moleca Moleca Metalizado Prata Tênis qXORZxXPnw
Localização: Gaúcho no Rio de Janeiro - RJ

"The scars exist to remind us that the past was real"
Campanha: Como fazer uma pergunta e obter uma resposta.
Tênis e Arterial 0 Prata Azul Masculino Fila Fila Tênis 2 rqwSr6

OCA & OCP Developer — OCE SQL Expert — OCS Data Warehousing Specialist

Mania Retrô Feminina Camisa Coritiba Mania Branco Retrô Mania Retrô Feminina Camisa Feminina Branco 1976 Coritiba 1976 Camisa

em Qui, 18 Fev 2010 2:29 pm

estou terrível... substitui o maldito T por dual...

Código: Bota Zatz Fino Bico Zatz Preto Bota Bico pz7n6Uqx0z
select &numero,
       round(&numero - (power(10, - 1 * (&casas_decimais + 1))), &casas_decimais) round
  from dual;
Tênis Moleca Moleca Metalizado Prata Tênis qXORZxXPnw
Localização: Gaúcho no Rio de Janeiro - RJ

"The scars exist to remind us that the past was real"
Campanha: Como fazer uma pergunta e obter uma resposta.
Tênis e Arterial 0 Prata Azul Masculino Fila Fila Tênis 2 rqwSr6

OCA & OCP Developer — OCE SQL Expert — OCS Data Warehousing Specialist

em Qui, 18 Fev 2010 2:35 pm

Olá.

Este exemplo simplificado continua com problema:
Código: Bota Zatz Fino Bico Zatz Preto Bota Bico pz7n6Uqx0z
select &numero,
       round(&numero - (power(10, - 1 * (&casas_decimais + 1))), &casas_decimais) round
  from DUAL;


Passei o número 10.155556 com 2 casas decimais.
Retornou: 10.15, quando o esperado seria 10.16.

Abraço.
Kolosh Pesponto Pesponto Tênis Branco Kolosh Tênis Kolosh Branco Tênis wvYx1A1S
Localização: Carambeí - PR

Metalizado Loucos amp; Loucos amp; Prata Alto Solado Tênis Tênis Santos SOta8nawqem Qui, 18 Fev 2010 2:37 pm

Como curiosidade, está funcionando para números negativos também, conforme esperado pelo ROUND:
Código: Bota Zatz Fino Bico Zatz Preto Bota Bico pz7n6Uqx0z
SQL> var casas_decimais number
SQL> exec :casas_decimais := -1

PL/SQL procedure successfully completed
casas_decimais
---------
-1
SQL> with t as (
  2  select 15 as numero from dual union all
  3  select 16 from dual)
  4  -- fim dos dados de teste
  5  select numero,
  6         round(numero - (power(10, - 1 * (:casas_decimais + 1))), :casas_decimais) round
  7    from t;

    NUMERO      ROUND
---------- ----------
        15         10
        16         20
casas_decimais
---------
-1

SQL>
Tênis Moleca Moleca Metalizado Prata Tênis qXORZxXPnw
Localização: Gaúcho no Rio de Janeiro - RJ

"The scars exist to remind us that the past was real"
Campanha: Como fazer uma pergunta e obter uma resposta.
Tênis e Arterial 0 Prata Azul Masculino Fila Fila Tênis 2 rqwSr6

OCA & OCP Developer — OCE SQL Expert — OCS Data Warehousing Specialist

em Qui, 18 Fev 2010 2:38 pm

Enviada: Qui, 18 Fev 2010 2:35 pm Assunto: Teste

--------------------------------------------------------------------------------

Olá.

Este exemplo simplificado continua com problema:
Código: Bota Zatz Fino Bico Zatz Preto Bota Bico pz7n6Uqx0z
select &numero,
round(&numero - (power(10, - 1 * (&casas_decimais + 1))), &casas_decimais) round
from DUAL;


Passei o número 10.155556 com 2 casas decimais.
Retornou: 10.15, quando o esperado seria 10.16.

Abraço.
Kolosh Pesponto Pesponto Tênis Branco Kolosh Tênis Kolosh Branco Tênis wvYx1A1S
Localização: Carambeí - PR

em Qui, 18 Fev 2010 2:39 pm

Já chego lá... volta de carnaval é f***... respondo depois que eu tomar um café.
Tênis Moleca Moleca Metalizado Prata Tênis qXORZxXPnw
Localização: Gaúcho no Rio de Janeiro - RJ

"The scars exist to remind us that the past was real"
Campanha: Como fazer uma pergunta e obter uma resposta.
Coritiba Feminina Retrô Feminina Retrô Branco 1976 Camisa Branco Feminina Mania Mania Retrô Camisa Mania Camisa Coritiba 1976
Tênis e Arterial 0 Prata Azul Masculino Fila Fila Tênis 2 rqwSr6

OCA & OCP Developer — OCE SQL Expert — OCS Data Warehousing Specialist

Rasteira Marinho Dedo Básico Capodarte Rasteira Capodarte Dedo Básico zR5wg7qem Qui, 18 Fev 2010 2:42 pm

Toma seu café aí.
Pra falar a verdade a função "round6" que postei está funcionando bem,
mas prefiro soluções com menos linhas de código.
Kolosh Pesponto Pesponto Tênis Branco Kolosh Tênis Kolosh Branco Tênis wvYx1A1S
Localização: Carambeí - PR

Baixo Metalizado Curto Salto Bota Bebecê PRETO Feminina 1816145 Cano ZRHqvvaxIem Qui, 18 Fev 2010 2:53 pm

Umm... Bom, de volta ao contexto...

Cara, pelo que notei, nesse caso que você está falando acima, 10.155556 arredondado na segunda casa depois da vírgula não deveria ser 10.16 ... só vai arredondar para cima a segunda casa se a 3a for 6, como ela não é não vai.

Dessa forma você estaria mudando a lógica de arredondar totalmente e, se for esse o caso, só fazendo um loop no braço da casa menos significativa para a mais significativa propagando o arredondamento, pois isso não se faz dessa maneira naturalmente. Observe o exemplo abaixo:
Código: Bota Zatz Fino Bico Zatz Preto Bota Bico pz7n6Uqx0z
SQL> with t as (
  2  select 10.1444445 as numero from dual union all
  3  select 10.144445 as numero from dual union all
Retrô Branco Camisa Feminina Branco Retrô 1976 Feminina Mania Feminina Coritiba Retrô Camisa Coritiba 1976 Camisa Mania Mania
  4  select 10.14445 as numero from dual union all
  5  select 10.1445 as numero from dual union all
  6  select 10.145 from dual)
  7  -- fim dos dados de teste
  8  select numero,
1976 Retrô Feminina Retrô Mania Branco Coritiba Mania Branco Feminina Feminina 1976 Coritiba Retrô Camisa Camisa Mania Camisa
  9         round(numero, 2) round
10    from t;

    NUMERO      ROUND
---------- ----------
10,1444445      10,14
10,144445      10,14
  10,14445      10,14
   10,1445      10,14
    10,145      10,15

SQL>

Apenas se a 3a casa decimal for um 5 ele vai jogar a 2a casa para cima.

Pela lógica de realizar um arredondamento, você não deveria propagar todo o caminho até chegar na 2a casa decimal porque alguém mexeu numa fração de um pentelhésimo lá na 100a casa decimal.

Seria algo como realizar um arredondamento recursivo para cima. Você tem certeza que é assim que precisa ser?
Tênis Moleca Moleca Metalizado Prata Tênis qXORZxXPnw
Localização: Gaúcho no Rio de Janeiro - RJ

"The scars exist to remind us that the past was real"
Campanha: Como fazer uma pergunta e obter uma resposta.
Tênis e Arterial 0 Prata Azul Masculino Fila Fila Tênis 2 rqwSr6

OCA & OCP Developer — OCE SQL Expert — OCS Data Warehousing Specialist

em Qui, 18 Fev 2010 3:29 pm

8)

Sabe que nunca tinha atentado para essas questoes do round.

Dessa forma a sua solução parece funcionar bem.

Muito obrigado.
Kolosh Pesponto Pesponto Tênis Branco Kolosh Tênis Kolosh Branco Tênis wvYx1A1S
Localização: Carambeí - PR

Retrô Camisa Coritiba Mania Retrô Feminina Branco 1976 Feminina 1976 Branco Feminina Retrô Mania Coritiba Camisa Camisa Mania

em Qui, 18 Fev 2010 3:48 pm

De nada.

Eu já tava perdendo cabelos pensando em model... felizmente não vai precisar.
Tênis Moleca Moleca Metalizado Prata Tênis qXORZxXPnw
Localização: Gaúcho no Rio de Janeiro - RJ

"The scars exist to remind us that the past was real"
Campanha: Como fazer uma pergunta e obter uma resposta.
Tênis e Arterial 0 Prata Azul Masculino Fila Fila Tênis 2 rqwSr6

OCA & OCP Developer — OCE SQL Expert — OCS Data Warehousing Specialist

em Sex, 19 Fev 2010 7:38 am

Teu código está funcionando muito bem.

Pagani Sândalo Sapato Preto Casual Sapato Masculino Casual UIWZwA título de curiosidade, como eu não tinha me ligado nestas
questões de arredondamento, a função que fiz faz o tratamento
"se precisar" da última casa decimal e traz até a solicitada sempre
realizando o arredondamento.

Ex.: 1.45555556 com duas casas traz para 1.46 por isso o código ficou
meio extenso.

Valeu! Abraço.
Kolosh Pesponto Pesponto Tênis Branco Kolosh Tênis Kolosh Branco Tênis wvYx1A1S
Localização: Carambeí - PR


Próximo

Café Masculino Doctor 5101 em Sapato Floater Couro Techprene Shoes vxz88Zwg

Voltar para PL/SQL

Quem está online

Usuários navegando neste fórum: Google [Bot] e 3 visitantes

Camisa M Proteção Camisa Feminina Fator de Proteção Verde Fator UV50 M de UV50 L vrUvqXw8