sábado, 27 de julho de 2013

Situação Aprendizagem - Jogos no Scratch

Bom dia meus amigos


Já curtiram os JOGOS que a 1ª fase do Técnico em Informática do SENAI Criciúma produziram?
Vale a pena conferir e brincar com o Scratch...http://scratch.mit.edu/studios/196463/


quarta-feira, 10 de julho de 2013

Universidade XTI

A Universidade XTI é uma organização educacional sem fins lucrativos, criada em 2011 por Ricardo Lopes Costa, um empresário do setor de tecnologia da informação. Com a missão de "formar profissionais para trabalhar com Tecnologia da Informação", o portal provê uma coleção gratuita de mais de 400 vídeos tutoriais armazenados online no YouTube, ensinando XHTML, CSS, JavaScript, jQuery, JAVA, SQL, XML, XSL e outras tecnologias.

História

Ricardo Lopes Costa fundou em 2005 com Lawrence Barbosa, a empresa de tecnologia da informação chamada XTI Informática, especializada em desenvolvimento de soluções mobile e portais corporativos web. Para atender a demanda por profissionais de ti para sustentar o crescimento da empresa, a XTI passou a capacitar seus profissionais em sala de aula, dentro das instalações da empresa. Em 2010 com a abertura das primeiras Filiais, o modelo de capacitação dentro da Matriz se mostrou ineficiente e oneroso para a formação dos profissionais a distância.

Então em 2011 teve início o Projeto Universidade XTI, como uma iniciativa social, financiada 100% pela empresa XTI.

Acesse o site completo: http://www.xti.com.br/carreira/universidade-xti.htm
Acesso aos vídeos: http://www.youtube.com/playlist?list=PLA03DEA5320ECBF85

sábado, 6 de julho de 2013

Guia para certificação ITIL Foundation

Guia completo para obter a certificação ITIL no nível Foundation

Tudo o que você precisa saber para certificar-se com 24 a 40 horas de estudo (conteúdo atualizado para ITIL V3 2011)

Certificação ITIL Foundation
certificação itil foundation
Desde que o portal GSTI era apenas um blog sobre Gestão de Serviços de TI, um dos interesses pioneiros dos leitores é a busca de orientações e apoio para obterem a certificação profissional ITIL (Information Tecnologie Infrasctruture Libary).

Recentemente, inserimos aqui no Portal uma orientação específica para agendamento e execução de provas da ITIL em casa. Sentimos a necessidade, entretanto, de criar esta página com maiores detalhes sobre a certificação ITIL Foundation em geral, e oferecer um guia completo para quem deseja obtê-la. Esperamos que seja útil!

ITIL foundation
ITIL Fondation

Índice deste tutorial/guia

  1. O que é ITIL
  2. Níveis de Certificação da ITIL
  3. Como se preparar para a prova ITIL Foundation
  4. Outras informações
  5. Lista de links úteis

1) O que é ITIL?

A sigla ITIL significa Information Technology Infrastructure Library, ou, traduzido para o português: Biblioteca de Infraestrutura de Tecnologia da Informação.

A ITIL define boas práticas para o Gerenciamento de Serviços de Tecnologia da Informação. Ou seja: o que as organizações fazem para obter eficiência e eficácia em seus serviços de TI. Boas práticas, ao contrário de normas e metodologias, devem ser adaptadas para cada organização. Não tem regras: você pode e deve usar como referência mas não se sentir obrigado a cumprir algum requisito. Assim, deve ser usada a ITIL, como também o guia do PMBOK, ou boas práticas PRICE2 ou COBIT

Foi criada pelo governo do Reino Unido a partir da década de 80 e acumula desde então boas práticas para a tecnologia da informação como um todo: como criar a estratégia, planejar, desenvolver novos serviços, oferecer suporte e melhorá-los continuamente. 


A ITIL pode ser utilizada por qualquer empresa, de qualquer tamanho. A biblioteca consta com 05 principais livros que estão na versão 3 e foram atualizados em 2011. Portanto, denominamos que a versão atual é a TIL V3 2011, ou simplesmente ITIL 2011. 


Se você deseja uma introdução mais completa sobre ITIL antes de ler sobre as certificações, sugiro consultar os links abaixo:

2) Níveis de certificações da ITIL

Esquema de certificações ITIL
Esquema de certificações ITIL
Existem 04 níveis de certificações na ITIL. Estes níveis e requisitos de cada um são administrados pela APM Group. Organizações tem direito de distribuir estas certificações, pois são conveniadas ao APM Group. No Brasil, as principais são Peoplecert e Exin.

Os níveis de certificação são os descritos a seguir:

2.1) ITIL Foundation (Nível Fundamentos)
Esta é uma prova que certifica o profissional para conhecimentos básico dos conceitos de Gestão de Serviços de TI segundo a biblioteca da ITIL.
A prova é teórica e contém questões com múltipla escolha. Para ser aprovado, o candidato deve acertar 65% das 40 questões, ou seja: 26 questões. O candidato tem o prazo de uma hora para fazer a prova.

Pode ser realizada online, em casa, no idioma português. Saiba mais aqui: Prova da certificação ITIL em casa.

Não há pré requisitos para candidatar-se a este nível de certificação.

2.2) ITIL Intermediate (nível intermediário)
Este é um conjunto de 10 certificações de nível intermediário, para profissionais que desejam progredir em sua carreira dentro das práticas de gestão de serviços de TI. Veja a lista destas certificações a seguir:
Provas Intermediárias do esquema de Certificações da ITIL:
As provas Intermediárias focam em conteúdos específicos da biblioteca da ITIL. As questões são baseadas em estudos de caso.

Existem dois pré requisitos para o candidato submeter-se a estas provas: ser certificado ITIL Foundation e ter participado de um treinamento oficial de ITIL Intermediate. Ou seja: treinamento acreditado pelo Exin, Peoplecert ou diretamente pelo APM Group.

A prova pode ser realizada online, em idioma português. No Brasil, ainda não há possibilidade de fazer estas provas em casa, apenas em centros acreditados.

2.3) ITIL Expert (nível Expert)
O profissional torna-se um ITIL Expert ao acumular 21 créditos nas certificações intermediárias. Existem certificações que fornecem ao aprovado 3 céditos, 4 créditos ou 5 créditos (que é o caso somente da prova Managing Across the Lifecycle Certificate).

Profissionais que já tinham o nível Manager da ITIL v2, entretanto, não precisaram se submeter a todas estas certificações intermediárias para obter o título de Expert. Eles precisaram apenas fazer um curso oficial chamado Manager Bridge e fazer uma prova para atualizar sua certificação. Este foi o caminho que nós, administradores do Portal GSTI (Fernando Palma e Marcelo Gaspar), optamos ao seguir a carreira de certificações ITIL: obtivemos o ITIL Manager e atualizamos para Expert.

2.4) ITIL Master
Este nível de certificação foi lançado desde 2007, mas só foi liberado, para um teste piloto, no ano passado (2012).

Para obter aprovação - neste que é o maior nível das certificações da ITIL -, o candidato deve realizar apresentação de casos reais para uma banca que avaliará o seu conhecimento prático aprovando ou não o candidato ao nível ITIL Master.

A avaliação está disponível apenas em idioma inglês.

Apenas um brasileiro possui a certificação ITIL Master: o Marcos Cesar Weiss. Leia sobre o teste piloto realizado neste resumo; ou leia a notícia original (em inglês) no site oficial da ITIL.

Caso deseje conhecer mais sobre o esquema de certificações, consulte este link: Esquema de certificações da ITIL. 

3) Como se preparar para prova da certificação ITIL Foundation
Siga os três passos básicos:

1) Faça um download dos requisitos da prova: Syllabus certificação ITIL Foundation em Português
2) Escolha uma das opções de estudo descritas logo abaixo nos itens 3.1) ou 3.2). Invista em um estudo entre 24h e 40h.
3) Realize muitos simulados. Refaça-os até que esteja acertando 100% das questões. O Portal conta com alguns simulados gratuitos, em breve iremos inserior outros.

Se você seguir estes 03 passos, é garantido: irá obter a certificação!

3.1) Estudar Sem custos
O portal GSTI divulga um material – não oficial – preparado e distribuído gratuitamente pela escola superior de redes. Confira:
Importante: o conteúdo não está atualizado para a versão ITIL V3 2011 (ou ITIL 2011). Entretanto, temos relatos de profissionais que passam na prova apenas com esta leitura + simulados.

Outros materiais básicos gratuitos podem ser encontrados nos sites da Exin e Peoplecert, em inglês. Na lista de links - no final desta página - poderá recorrer a mais materiais para auto estudo.

3.2) Curso online oficial (recomendado)
Em nossa loja virtual, dispomos de um curso online ITIL em formato de videoaulas. O curso é oficial, acreditado tanto pelo Exin quanto Peoplecert. O treinamento é oferecido em parceria com a PMG Education.

O aluno tem direito a acesso as videoaulas do treinamento online, material e 09 simulados oficiais. Pode assistir às aulas e fazer os simulados quantas vezes desejar.

O investimento é de R$76,29 para leitores do Portal GSTI . O preço de tabela praticado pela PMG é de R$127,15. A forma de pagamento é pagueseguro, o valor pode ser dividido em até 10x
3.3) Agendamento da certificação
Como descrito acima, a prova da ITIL Foundation já pode ser realizada em casa, com o acompanhamento online de um tutor. Veja no link abaixo mais informações com vídeos ilustrativos de como agendar a prova. Você pode fazer isso também através da loja virtual do Portal GSTI.
O custo do exame é de R$ 377,69 e também pode ser dividido.

4) Outras informações

Para qualquer outra dúvida, basta entrar em contato conosco, nós teremos o maior prazer em ajudá-lo! Email: contato@portalgsti.com.br.

5) Lista de Links úteis
A
publicidade
Faça um curso online oficial com direito a 09 simulados e realize a prova em casa! 
              

EII!! OLÁÁÁ!!! ATENÇÃO!! Não vá embora ainda! Nós temos um pedido importante: compartilhe esta publicação!! Use os botões de redes sociais disponíveis logo abaixo. Ajude a divulgar o nosso trabalho! Caso deseje acompanhar nossas publicações nos siga no FacebookLinkedin ou por Email. O Portal GSTI agradece sua visita! 

Confira o quarto e último dia de provas no Leipziger Messe

Confira o quarto e último dia de provas no Leipziger Messe —Worldskills 2013 | 4º dia de provas dos competidores brasileiros (17 fotos)

Mega ganha app oficial para Android

Posted: 04 Jul 2013 01:31 PM PDT
Quase sete meses após a chegada do Mega, Kim Dotcom finalmente lançou a versão oficial do aplicativo do serviço para a plataforma Android, conforme prometido. É verdade que a ferramenta estava disponível desde fevereiro deste ano, mas até então somente em versões beta.
É verdade também que já era possível encontrar apps do Mega no Google Play desenvolvidos por terceiros, graças à API aberta do serviço. Entre eles estão opções como Mega Manager BetaMega Storage Manager. A diferença aqui é que a versão oficial conta com suporte pleno da empresa.
Bom, pelo menos é isso o que se espera. É que o aplicativo, na verdade, fazia parte das opções criadas por terceiros, mas foi posteriormente adquirido pelo Mega para se tornar a versão oficial. Assim, não se sabe em que nível está o envolvimento da empresa com o software ou se os seus updates serão feitos pelos desenvolvedores originais.
Mega para Android
Mega para Android
Ao usar o Mega para Android, o usuário poderá baixar seus dados, renomear arquivos ou diretórios, efetuar upload para a sua conta, consultar o espaço em disco disponível, enfim, fazer o básico. O app está disponível para download aqui, “digrátis”.
A turma de Kim Dotcom reforçou que o Mega também terá versões oficiais (ou compradas de alguém, vai saber) para as plataformas iOS e Windows. Ainda não há datas de lançamento definidas, mas ambos os programas já estão em fase final de desenvolvimento, segundo a empresa.
Com informações: The Next Web
Mega ganha app oficial para Android

Internet das Coisas, NFC e Plataformas Móveis

Um dos termos mais discutidos nos últimos tempos é o conceito de Internet das Coisas, ou, IoT (Internet Of Things). Resumindo o conceito: a grande maioria dos objetos estáticos do mundo atual, como um chinelo, um boné, um par de meias, até mesmo um órgão humano, terá acesso a internet e consequentemente poderá trocar informações com o mundo exterior sobre seu estado interior.
Logicamente para que a internet das coisas realmente avance e domine o globo terrestre algumas tecnologias serão essenciais. A primeira delas que nos vem a cabeça são os sensores. São estes equipamentos eletrônicos, muitas vezes extremamente baratos, que fornecem subsídios para que as casas inteligentes se tornem realidade, por exemplo.
Mas seria uma injustiça esquecer-se de outras tecnologias que podem contribuir para esta convergência global de tecnologias. Uma interoperabilidade e, principalmente, uma comunicação eficaz entre hardwares também será essencial. Neste contexto podemos destacar redes wi-fi decentes, infrared, bluetooth e rfid.
Mas, neste pequeno artigo gostaria de destacar uma em especial: NFC (Nier Field Communication). Parafraseando o Wikipedia: Comunicação de Campo Próximo, Near Field Communication ou NFC, é uma tecnologia que permite a troca de informações sem fio e de forma segura entre dispositivos compatíveis que estejam próximos um do outro. Ou seja, logo que os dispositivos estejam suficientemente próximos, a comunicação é estabelecida automaticamente, sem a necessidade de configurações adicionais. Estes dispositivos podem ser telefones celulares, tablets, crachás, cartões de bilhetes eletrônicos e qualquer outro dispositivo que tenha um chip NFC.
Para conhecer detalhes de funcionamento das tags NFC visite este vídeo do YoutTube: http://www.youtube.com/watch?v=_RBbuGwC7Eg.
A sua utilidade é limitada pela criatividade dos cientistas da computação. Por exemplo, utilizo as plataformas Android e Windows Phone, muito mais a primeira. Na Google Play existem inúmeros aplicativos onde posso associar um conjunto de ações a uma tag NFC.  Por exemplo, posso deixar uma tag NFC na cabeceira da minha cama. Ao chegar em casa, o celular reconhece a tag e faz algumas pré-configurações como: ligar o despertador, colocar o volume no máximo, desligar GPS e Wi-fi. Também sou instrutor na Globalcode Treinamentos, então, posso deixar uma tag NFCencima da mesa. Ao chegar lá o smartphone reconhece essa tag e desabilita todos os sons, desliga o GPS e liga o Wi-fi. E assim por diante.
Outro ponto é o custo destas tags. Fazendo uma pesquisa rápida por alguns dos principais sites de compras on-line, encontrei diversas ofertas de kit´s com até 5 tags adesivas, por um valor entre 25,00R$ e 30,00R$. Amanhã irei com o pessoal do ArduinoTeam até a Santa Efigência (bairro de São Paulo famoso pelas opções de aparelhos eletrônicos) comprar algumas tags.
Depois desta dúvida sanada com a conclusão de que as tags tem um preço bem em conta, comecei indagar sobre outro possível problema. Será que as plataformas móveis atuais já fornecem um conjunto de API´s adequadas para nós, desenvolvedores, podermos trabalhar em aplicativos que façam uso da tecnologia NFC?
Primeiro fui até a bíblia de todo desenvolvedor Android, o site developer.android.com. Lá encontrei uma documentação completa sobre a API da plataforma para leitura e escrita de/em tags NFC. Os dois parágrafos abaixo são os mais importantes:
Reading NDEF data from an NFC tag is handled with the tag dispatch system, which analyzes discovered NFC tags, appropriately categorizes the data, and starts an application that is interested in the categorized data. An application that wants to handle the scanned NFC tag can declare an intent filter and request to handle the data.
The Android Beam™ feature allows a device to push an NDEF message onto another device by physically tapping the devices together. This interaction provides an easier way to send data than other wireless technologies like Bluetooth, because with NFC, no manual device discovery or pairing is required. The connection is automatically started when two devices come into range. Android Beam is available through a set of NFC APIs, so any application can transmit information between devices. For example, the Contacts, Browser, and YouTube applications use Android Beam to share contacts, web pages, and videos with other devices.
Ou seja, com Android não precisamos nos preocupar. A API é completa.  E quanto a Windows Phone? Minha primeira decepção. Somente a partir do Windows Phone 8.0 existe suporte a NFC. Então, como tenho um Lumia 800, com a versão 7.8, não vou poder desfrutar deste recurso.
Para quem tem um Windows Phone 8.0 existe uma API sim. O nome dela é Proximity for Windows Phone 8. Segundo o Windows Phone Dev Center, Proximity refers to a set of classes in the Windows Runtime that support connections between devices that are within close range of each other. By using this API, your app can establish a connection through a tap, or by browsing for other devices that are running your app—peer apps—within wireless range. For example, one of these apps might be a multiplayer game in which two users tap their phones together to establish a shared game session. Or, an app might give users the ability to tap a computer and receive a link to a location where they can get more information or make a purchase. Windows Phone 8 supports Proximity communication using Near Field Communication (NFC). This topic provides an overview of the Proximity API for Windows Phone.
A documentação é um pouco mais pobre do que a página de desenvolvedores do Android, mas nem por isso deixa de ser valiosa, contendo exemplos de códigos  e descrição das classes utilizadas durante todo o processo. A princípio (vou me aprofundar mais neste tema e espero escrever novos artigos) a API do Android também é mais inteligente, isso porque já faz um processamento inicial e traduz o tipo de tag NFC que está sendo lida, enviando um aviso a todo sistema operacional, o aplicativo que quer tratar este dado é só recuperá-lo.
E no iPhone? Bem, outra decepção. O iPhone sequer possui NFC. Rumores indicam que a próxima versão, o 5S, terá suporte a tecnologia. O único jeito é aguardar.
Para minha surpresa (na verdade eu já sabia, mas só para dar suspense ao artigo), o velho e famigerado Java ME possui uma JSR (Java Specification Request) chamada Contactless Communication API que fornece suporte a comunicação NFC. Inclusive tem um arquivo PDF na web com 94 página da documentação completa da JSR (http://mami.uclm.es/j2me/JSR257/jsr-257-spec-1.0.pdf).

Segundo este documento: This specification defines the Contactless Communication API, a  Java ME optional package containing an application programming interface that allows applications to access information on contactless targets, such as RFID tags and barcodes.
NFC Forum specifies a data packaging format (NDEF) to exchange information between an NFC device and another NFC device or with a RFID tag. This API takes advantage of this data formatting by providing a connection to any physical target that supports the NDEF data formatting defined in the NFC Forum.
No site do Developer Nokia também é possui encontrar um exemplo completo de uso desta JSR: http://www.developer.nokia.com/Community/Wiki/NFC_UIDReader_using_Java_ME.
Até a BlackBerry eu pesquisei. Apesar de seu péssimo momento, é sempre bom ficar de olho na canadense que já foi sinônimo de inovação. Seu mais novo sistema operacional, o BlackBerry 10, causou uma boa impressão na crítica. Porém, o público ainda não aderiu aos novos aparelhos da marca.
O Q10 e o Z10 por exemplo, ambos tem a seguinte descrição no site oficial da empresa, no item NFC: BlackBerry® Tag com tecnologia NFC permite a comunicação entre smartphones BlackBerry e outros dispositivos habilitados para NFC, com um toque. Confesso a vocês que não procurei sobre as APIs de desenvolvimento, porque pelo que vi, o BlackBerry 10 tem várias possibilidades de desenvolvimento, como Cascades, HTML5, Core Native, Adobe Air, Android, Java e Platform Partners.

Conclusão
Com esta rápida pesquisa cheguei a uma conclusão. Na maioria das plataformas atuais é possível criar aplicativos NFC. Uma feature que pode enriquecer e muito nossos aplicativos. Além disso, o custo destas tags não é algo que possa impedir uma abordagem de tentativa e erro. Sendo assim, não há mais desculpas. Podemos entrar no mundo da Internet das Coisas começando pelas tags NFC.

Maratona de software reúne desenvolvedores em Porto Alegre

Acontece até sábado, 6, em Porto Alegre (RS), o 14ª Fórum Internacional de Software Livre, do 1º Hackathon de Dados dos Projetos Sociais do Governo Federal. Organizado pelo Ministério da Ciência, Tecnologia e Inovação (MCTI), com colaboração do Ministério do Desenvolvimento Social e Combate à Fome (MDS), o Hackathon é uma maratona de desenvolvimento de projetos de software, que terá duração de 48 horas.
Programadores, desenvolvedores, hackers e inventores no geral trabalham em cima de dados de projetos sociais a administração federal para desenvolver soluções como sites, aplicativos, gráficos interativos e visualização das informações. A ideia da maratona é utilizar a criatividade desses profissionais para transformar informações de interesse público em projetos e serviços com vistas à melhoria da transparência dos dados dos projetos sociais do governo federal.
A premiação dará um notebook para o projeto mais bem avaliado por especialistas, um smartphone para a segunda colocação e um tablet para o terceiro lugar. Os vencedores serão divulgados no último dia de evento. Três quesitos fazem parte da avaliação do projeto: interesse público, criatividade e qualidade técnica; e o projeto deve ser open source com controle de versão baseado em Git.

quinta-feira, 4 de julho de 2013

Aprenda a programar – Algoritmos

Uma ótima referência para quem está começando a programar...


Aprenda a programar é uma série de posts ensinando algoritmos de uma forma simples, usando Portugol (português estruturado). A série possui 13 posts.
Aprenda a fazer programas de Computador
Aprenda a programar #1: Neste post é explicado o que é uma linguagem de programação, a diferença da linguagem compilada para interpretada, e também a diferença entre linguagem de baixo e alto nível.
VisualG – Software para interpretação de algoritmos: É explicado a função do VisualG, como instalá-lo em Windows e Linux, e uma apostila ensinando como utilizar o software. A partir desse post, começaremos a fazer Algoritmos no VisualG.
Aprenda a programar #2 | O que é um Algoritmo: Post Explicando o que é um algoritmo, e o que é Portugol.
Aprenda a programar #3 | Variáveis: Mostra o que são variáveis, os tipos de variáveis e as palavras reservadas do Portugol.
Aprenda a programar #4 | Primeiro Programa: Como é a estrutura de um algoritmo, como é feita adeclaração de variáveis e finalmente o primeiro programa (“Olá Mundo!”).
Aprenda a programar #5 | Operadores Aritméticos: O post explica como atribuir valores à variáveis e mostra quais são os operadores aritméticos.
Aprenda a programar #6 | Operadores Lógicos e Relacionais: Esse post fala sobre os operadoresrelacionais e lógicos, além de falar um pouco da tabela verdade.
Aprenda a programar #7 | Condicionais: O post explica a estrutura condicional, “se” (if-then-else).
Aprenda a programar #8 | Escolha .. Caso: Post mostrando a estrutura “Escolha… Caso”(switch) ecomo fazer comentários no algoritmo.
Aprenda a programar #9 | Estruturas de Repetição 1: Esse começa a falar sobre Estruturas de Repetição. Explica a estrutura “Repita…ate” (do .. while).
Aprenda a programar #10 | Estruturas de Repetição 2: Continua mostrando as estruturas de repetição, este post fala sobre a “Enquanto…Faca”. (while..)
Aprenda a programar #11 | Estruturas de Repetição 3: Post explicando a estrutura de repetição “Para…Faca”.(for)
Aprenda a programar #12 | Vetores: Post com  introdução a vetores.  Entenda o seu uso e aprenda a declará-los.
Aprenda a programar #13 | Matrizes: Aprenda nest post, o que são matrizes e como fazê-las no portugol. Elas também são conhecidas como Vetores bi-dimensionais.
40 Exercícios de Algoritmos Resolvidos para Estudo: Aqui disponibilizamos uma lista de 40 exercícios de Algoritmos para que vocês possam estudar, e também a resposta de cada um em arquivos separados.
Se você viu todos os posts e acompanhou a série, agora já pode começar a estudar uma linguagem de programação, PHP, Python, Ruby, C  entre outras e começar a desenvolver os seus próprios programas.

terça-feira, 2 de julho de 2013

Arredondando números em Java


Veja neste artigo algumas das formas mais usadas para arredondar valores decimais usando a linguagem Java, assim como maneiras de saber como usar corretamente de acordo com a realidade de cada projeto

Arredondamento de números em Java
Dentre todos os tipos de aplicações criadas todos os dias por vários desenvolvedores ao longo do mundo, um deles certamente é extremamente usado, importante e movimenta mercados de muito valor: aplicações financeiras. Esses tipos de aplicações, ou até mesmo outras que façam uso dos recursos de finanças, são muito comuns no mercado e extremamente importantes para definir os rumos de circulação do dinheiro.
Paralelo a isso, os desenvolvedores de sistemas das mais diversas tecnologias e linguagens de programação tem de lidar com valores e precisões cada vez maiores e bem definidas quando do desenvolvimento de um sistema desse tipo. O arredondamento de valores decimais se faz presente, por exemplo, nos sistemas de postos de gasolina, onde o preço chega a ser exibido com até 5 casas decimais de valor. Essa precisão, se relacionada a sistemas que manipulam muito dinheiro pode significar perdas ou ganhos muito altos.
Na linguagem de programação Java existem inúmeras maneiras de lidar com isso. Algumas mais precisas, outras mais complexas, mas uma dúvida sempre paira na cabeça de muitos programadores quando lhe é perguntado sobre esse tipo de operação: Como arredondar números em Java? Qual a melhor maneira de fazer isso para a realidade do sistema que se está a desenvolver?
As respostas quase sempre ficam no primeiro link encontrado na pesquisa do Google, mas nem sempre isso pode significar a melhor estratégia para a sua realidade, para a sua aplicação. Veja neste artigo algumas maneiras de se trabalhar arredondando valores decimais em Java, analisando variáveis como tipos de dados, performance, dentre outras.

java.Math

A classe java.lang.Math é uma classe que existe dentro do pacote principal do Java, aquele que não necessita imports para ser usado. Essa classe dispõe de alguns métodos que lidam diretamente com essa funcionalidade de arredondamento. Veja alguns deles:

1. Math.round()

Esse método, tido como o método padrão para arredondar valores nesta classe, é usado para receber um parâmetro decimal (Double ou float) e retornar o valor arredondado em inteiro. Talvez esse seja o maior problema desses métodos, eles retornam um inteiro. E para o caso do posto de gasolina isso não se aplicaria, uma vez que é necessário fazer os respectivos arredondamentos a um nível de casas decimais também. Além disso, o método também retorna o valor arredondando-o para o valor mais alto (considere também os negativos no mesmo conceito, ou seja, mais alto = mais próximo de zero). Veja na Listagem 1 um exemplo de uso do mesmo:
Listagem 1: Uso do método round()
System.out.println(Math.round(10.5));
// Imprime 11

2. Math.floor()

Este método é muito semelhante ao método round(), entretanto a diferença consiste que o mesmo retorna um decimal (Double) ao invés de um inteiro. Portanto, o número recebido será arredondado para o valor mais próximo e alto e retornado como um decimal da mesma forma. Confira na Listagem 2 o que acontece com o mesmo exemplo da Listagem 1.
Listagem 2: Uso do método floor()
System.out.println(Math.floor(10.5));
// Imprime 11.0

4. Math.ceil()

Este método é semelhante ao floor() no conceito de casas decimais, entretanto ele retornará o valor baseando-se no menor e mais próximo. Usando o mesmo exemplo até então, só que negativo para ter um controle maior do menor, veja a Listagem 3.
Listagem 3: Uso do método ceil()
System.out.println(Math.ceil(-10.5));
// Imprime -10.0
Os recursos da classe Math são os mais usados. Mas como deu para perceber, são limitados e não tem uma precisão e formatação muito desenvolvidas.

DecimalFormat

A classe DecimalFormat, como o próprio nome sugere, é uma classe que foi criada com a finalidade de formatar valores decimais. Ela se baseia em padrões estabelecidos para determinar como os mesmos valores serão formatados. Por exemplo, suponha que você deseje formatar um número decimal com cinco casas decimais de precisão, tal como foi definido anteriormente nas limitações da classe Math; então você poderia formatar o mesmo valor através do código da Listagem 4.
Listagem 4: Uso da classe DecimalFormat para formatação de valores decimais
DecimalFormat df = new DecimalFormat("#.00000");
df.format(0.912385);
// Imprime 0,91238
Uma observação que deve ser feita é que o método format() em questão retorna uma String formatada no padrão informado.
Além disso, notem que o valor não veio arredondado para cima. Isso acontece porque ela só manipula valores de casas de decimais com modo de arredondamento para baixo. Se mudar o padrão, e adicionar o RoundingMode como na Listagem 5, verá que o resultado muda e o arredondamento acontece:
Listagem 5: Mudando padrão de formatação
DecimalFormat df = new DecimalFormat("###.######");
df.setRoundingMode(RoundingMode.UP);
System.out.println(df.format(0.53583332));
// Imprime 0,535834

BigDecimal

Outra classe bem famosa para fazer esse tipo de operação é a classe BigDecimal. Essa classe é amplamente usada para manipular valores decimais de precisão alta, como em variáveis que guardarão valores monetários, por exemplo.
Particularmente, essa classe constitui uma das melhores formas de se trabalhar com decimais e suas casas decimais, mesmo que os valores não sejam tão altos assim. Na Listagem 6 é exibida uma demonstração de como a classe trabalha:
Listagem 6: Uso da classe BigDecimal para formatar os valores decimais
double d = 12.548795;
BigDecimal bd = new BigDecimal(d).setScale(3, RoundingMode.HALF_EVEN);
System.out.println(bd.doubleValue());
// Imprime 12.549
A criação do novo BigDecimal em conjunto com o uso do método setScale() faz com que a formatação se dê de forma eficaz. O parâmetro de valor “3” passado para este método indica o número de casas decimais a serem consideradas e o segundo parâmetro (HALF_EVEN) indica que o arredondamento sempre deve acontecer para o valor mais próximo, cima ou baixo. Finalmente, o valor pode ser impresso através da chamada ao método doubleValue() que retorna uma variável cópia do tipo double com o valor formatado.

Concluindo

Esses são apenas alguns dos recursos mais usados na linguagem para esse tipo de funcionalidade. Se procurar na internet, é possível encontrar inúmeras outras formas, usando regex, formatação de Strings ou métodos próprios de formatação. No mais, fica a lacuna de você decidir qual melhor se enquadra e usar. Até mais.


Leia mais em: Arredondando números em Java http://www.devmedia.com.br/arredondando-numeros-em-java/28248#ixzz2XwAlEZwb