Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

yone2007

arredondamento sinistro de numeros

Recommended Posts

Ola pessoal, é o seguinte....

em um programa que estou desenvolvendo para me ajudar com calculos parei em um problema que não consigo solucionar.

 

obtenho um resultado de uma variável que chamo de "base" e normalmente esse resultato é quebrado : ex 3,87

a primeira cada, antes da virgula, não é problema, mas sim o que está depois dela.

no caso eu tenho uma escala que é da seguinte forma:

0,25 0,50 0,75 00

ou seja, ao invés de ficar um numero quebrado como por exe "87" eu preciso que ele arredonde para um destes valores desta escala, sempre o menor. no caso seria o 0,75 por que é menor 87.

Então gostaria que o resultado de "base" fosse 3,75

Outros exemplos:

se base fosse 2,33, o programa arredondaria para 2,25

se base fosse 7,44, o programa arredondaria para 4,25

se base fosse 4,52, o programa arrendondaria para 4,50

se base tiver um numero 1,00 ou inteiro....então não precisa ser feito nenhuma alteração.

 

Vocês conseguem me ajudar neste problema?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola pessoal, é o seguinte....

em um programa que estou desenvolvendo para me ajudar com calculos parei em um problema que não consigo solucionar.

 

obtenho um resultado de uma variável que chamo de "base" e normalmente esse resultato é quebrado : ex 3,87

a primeira cada, antes da virgula, não é problema, mas sim o que está depois dela.

no caso eu tenho uma escala que é da seguinte forma:

0,25 0,50 0,75 00

ou seja, ao invés de ficar um numero quebrado como por exe "87" eu preciso que ele arredonde para um destes valores desta escala, sempre o menor. no caso seria o 0,75 por que é menor 87.

Então gostaria que o resultado de "base" fosse 3,75

Outros exemplos:

se base fosse 2,33, o programa arredondaria para 2,25

se base fosse 7,44, o programa arredondaria para 4,25

se base fosse 4,52, o programa arrendondaria para 4,50

se base tiver um numero 1,00 ou inteiro....então não precisa ser feito nenhuma alteração.

 

Vocês conseguem me ajudar neste problema?

 

 

Segue a solução do seu problema

 

'*********************************

'Nome: FncArredendaMetrica

'Parâmetro: pValor : Valor indicado pra arredondamento

'Função : Arredondar valores conforme a escala: 0, 0.25, 0.5, 0.75.

'Retorno: Valor Arredondado

'Exemplo

'-> 1.01, o programa retorna : 1

'-> 2.33, o programa retorna : 2.25

'-> 4.44, o programa retorna : 4.25

'-> 4.52, o programa retorna : 4.50

'-> 7, o programa retorna : 7

'Autor: André Castanheira

'Data: 02/06/2010

'*********************************

Function FncArredendaMetrica(pValor As Double) As Double

 

Dim vInteiro As Integer

Dim vDecimal As Double

 

vInteiro = Int(pValor)

 

vDecimal = pValor - vInteiro

 

If vDecimal < 0.25 Then

vDecimal = 0

ElseIf vDecimal < 0.5 Then

vDecimal = 0.25

ElseIf vDecimal < 0.75 Then

vDecimal = 0.5

Else

vDecimal = 0.75

End If

 

'Retorna o valor arredondado.

FncArredenda = vInteiro + vDecimal

 

End Function

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.