Fração Decimal em Código
Sobre a Matemática
É toda a fração que tem por denominador qualquer potência de 10 com expoente positivo. Exemplos: 3/10, 321/1000, 13/10.
Chamamos unidades decimais fracionárias ou apenas unidade decimais às frações: 1/10, 1/100, 1/1000, 1/10000, 1/100000, etc., que se lêem respectivamente: um décimo, um centésimo, um milésimo, um décimo milésimo, um centésimo milésimo, etc. E que se chamam ainda, respectivamente: unidade decimal de 1ª ordem, unidade decimal de 2ª ordem, unidade decimal de 3ª ordem, etc.
Verifica-se facilmente que a unidade decimal de determinada ordem equivale a 10 unidades de ordem imediatamente inferior. Assim: 1 décimo = 10 centésimos, 1 centésimo = 10 milésimos, 1 milésimo = 10 décimos de milésimos, e assim por diante.
Portanto, o princípio fundamental adotado na representação dos números inteiros, segundo o qual um algarismo escrito à esquerda de outro representa unidades 10 vezes maiores do que as desse outro, pode ser utilizado na representação das frações decimais.
Sobre o Código
Na linguagem de programação Python,
from – é a palavra-chave usada para importar partes específicas de um módulo ou biblioteca.
decimal – é o nome da biblioteca padrão que fornece suporte para cálculos decimais de alta precisão.
import – é a palavra-chave usada para trazer módulos, classes ou funções externas para o código.
Decimal() – é a classe da biblioteca decimal que representa números decimais com precisão controlada.
getcontext() – é a função da biblioteca decimal que retorna o contexto atual de cálculo (precisão, arredondamento, etc.).
.prec – é o atributo do contexto que define a quantidade de dígitos de precisão nos cálculos decimais.
def – é a palavra-chave usada para definir uma função.
Docstring – é uma string especial (geralmente delimitada por aspas triplas """ ... """) colocada logo após a definição de uma função, classe ou módulo. Serve para documentar o que aquele bloco de código faz, quais parâmetros recebe e o que retorna. Pode ser acessada pelo atributo .__doc__.
int – é o tipo de dado que representa números inteiros.
-> – é a anotação de tipo que indica o tipo de retorno esperado de uma função (exemplo: -> Decimal).
return – é a palavra-chave usada para devolver um valor de dentro de uma função.
f"..{}" (f-string) – é a forma de interpolação de strings em Python, permitindo inserir valores de variáveis dentro de {}.
print() – é a função que exibe informações no console.
for..in..: – é a estrutura de repetição que percorre elementos de uma sequência (lista, intervalo, etc.).
range() – é a função que gera uma sequência de números inteiros, usada com loops.
.normalize() – é o método da classe Decimal que remove zeros desnecessários e simplifica a representação decimal.
# – é usado para criar comentários ao código, que são notas para se entender melhor o que o código faz.
Vamos ao código…
from decimal import Decimal, getcontext
# Definindo precisão para os cálculos decimais
getcontext().prec = 10
def unidade_decimal(ordem: int) -> Decimal:
"""
Retorna a unidade decimal de determinada ordem.
Exemplo: ordem=1 -> 1/10 (um décimo)
ordem=2 -> 1/100 (um centésimo)
ordem=3 -> 1/1000 (um milésimo)
"""
return Decimal(1) / (Decimal(10) ** ordem)
def equivalencia(ordem: int):
"""
Mostra a equivalência entre a unidade decimal de uma ordem
e a imediatamente inferior.
"""
atual = unidade_decimal(ordem)
inferior = unidade_decimal(ordem + 1)
return f"{atual} = 10 × {inferior}"| Código Python (.py) | O que faz |
| from decimal import Decimal, getcontext | Importa da biblioteca decimal as classes/funções necessárias para trabalhar com números decimais de alta precisão. |
| getcontext().prec = 10 | Define a precisão dos cálculos decimais para 10 casas significativas. |
| def unidade_decimal(ordem: int) -> Decimal: | Cria uma função chamada unidade_decimal que recebe um número inteiro (ordem) e retorna um valor do tipo Decimal. |
| “”” … “”” | Docstring explicativa: descreve o que a função faz (retorna a unidade decimal da ordem indicada). |
| return Decimal(1) / (Decimal(10) ** ordem) | Calcula a fração correspondente à unidade decimal da ordem. Exemplo: ordem=2 → 1/100. |
| def equivalencia(ordem: int): | Define uma função chamada equivalencia que mostra a relação entre uma unidade decimal e a imediatamente inferior. |
| “”” … “”” | Docstring explicativa: descreve que a função mostra a equivalência entre ordens. |
| atual = unidade_decimal(ordem) | Calcula a unidade decimal da ordem atual. |
| inferior = unidade_decimal(ordem + 1) | Calcula a unidade decimal da ordem imediatamente inferior. |
| return f”{atual} = 10 × {inferior}” | Retorna uma string mostrando a equivalência (ex.: 0.1 = 10 × 0.01). |
# Exemplos de uso
print("Unidades decimais:")
for i in range(1, 6):
print(f"Ordem {i}: {unidade_decimal(i)}")
print("\nEquivalências:")
for i in range(1, 5):
print(equivalencia(i))
# Representação de frações decimais
fracoes = [Decimal(3)/10, Decimal(321)/1000, Decimal(13)/10]
print("\nFrações decimais:")
for f in fracoes:
print(f"{f} (forma decimal: {f.normalize()})")| Código Python (.py) | O que faz |
| print(“Unidades decimais:”) | Exibe o título da seção no console. |
| for i in range(1, 6): | Cria um loop para percorrer as ordens de 1 até 5. |
| print(f”Ordem {i}: {unidade_decimal(i)}”) | Para cada ordem, imprime o valor da unidade decimal correspondente. |
| print(“\nEquivalências:”) | Exibe o título da seção de equivalências, com quebra de linha antes. |
| for i in range(1, 5): | Loop para percorrer ordens de 1 até 4. |
| print(equivalencia(i)) | Imprime a equivalência entre a ordem atual e a imediatamente inferior. |
| fracoes = [Decimal(3)/10, Decimal(321)/1000, Decimal(13)/10] | Cria uma lista com exemplos de frações decimais. |
| print(“\nFrações decimais:”) | Exibe o título da seção de frações decimais. |
| for f in fracoes: | Loop para percorrer cada fração da lista. |
| print(f”{f} (forma decimal: {f.normalize()})”) | Imprime a fração e sua forma decimal simplificada usando .normalize(). |
Saída do código (valor de retorno)…
Unidades decimais:
Ordem 1: 0.1
Ordem 2: 0.01
Ordem 3: 0.001
Ordem 4: 0.0001
Ordem 5: 0.00001
Equivalências:
0.1 = 10 × 0.01
0.01 = 10 × 0.001
0.001 = 10 × 0.0001
0.0001 = 10 × 0.00001
Frações decimais:
0.3 (forma decimal: 0.3)
0.321 (forma decimal: 0.321)
1.3 (forma decimal: 1.3)
Fonte:
– Editora Didática Paulista. Ensino Didático 2000: Ensino Fundamental e Ensino Médio. Sorocaba: Editora Didática Paulista, [s.d.].
– Códigos e comentários gerados por Microsoft Copilot com revisão nossa.
– https://docs.python.org/pt-br/3/ [Documentação Oficial do Python]