Python—数据类型之decimal类型

本文深入探讨了Python中decimal模块的使用,包括如何创建和操作十进制数,以及decimal模块提供的高精度算术运算。文章详细介绍了decimal.Decimal函数的用法,包括从整数、字符串和浮点数创建十进制对象的方法,以及在不同形式下输出decimal对象的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

十进制类型

要创建Decimals,必须先导入decimal模块

decimal的精度可以由我们自己指定

函数

decimal.Decimal(x)                                          #x可以是一个整数或字符串,但不能是浮点数
>>>import decimal
>>>a = decimal.Decimal(9876)
>>>b = decimal.Deciaml("54321.01234567898754321")
>>>a + b
>>>Decimal('64197.012345678987654321')

decimal.Deciaml.from_float(x);                              #x可以是一个浮点数
>>>Deciaml.from_float(0.1)
Decimal('0.1000000000000000055511151231257827021181583404541015625')
>>>Decimal.from_float(float('nan'));
Decimal('NaN')
>>>Decimal.from_float(float('-inf'));
Decimal('-Infinity')

Python对象有两种输出形式

  1. 字符串形式,在设计目标上为了更易于阅读
  2. 表面形式 ,在设计目标上则是生存备用的输出信息,作为Python解释器的输入时会重新产生所代表的对象
>>>print(decimal.Deciaml(23) / decimal.Deciaml("1.05"));     #字符串形式
21.90476190476190476190476190

>>>decimal.Deciaml(23) / decimal.Deciaml("1.05");            #表象形式
Deciaml("21.90476190476190476190476190")

 

### Python 数据类型概述 Python 是一种动态类型的编程语言,这意味着变量不需要显式声明其数据类型即可使用。以下是 Python 中常见的基本数据类型: #### 1. 数字类型 (Numbers) Python 支持多种数字类型,包括整型 (`int`)、浮点型 (`float`) 和复数类型 (`complex`)。 - **整型 (`int`)** 整型用于存储任意大小的整数值。例如 `x = 10` 表示定义了一个整型变量。 - **浮点型 (`float`)** 浮点型用于表示带有小数部分的实数。例如 `y = 3.14` 定义了一个浮点型变量。 - **复数类型 (`complex`)** 复数由实部和虚部组成,形如 `a + bj`。例如 `z = 2 + 3j` 定义了一个复数。 ```python # 示例代码:数字类型 x = 10 # int 类型 y = 3.14 # float 类型 z = 2 + 3j # complex 类型 print(f"x is {type(x)}") # 输出: x is <class 'int'> print(f"y is {type(y)}") # 输出: y is <class 'float'> print(f"z is {type(z)}") # 输出: z is <class 'complex'> ``` #### 2. 字符串类型 (String) 字符串是由字符组成的序列,在 Python 中通过单引号 `' '` 或双引号 `" "` 来创建。需要注意的是,Python 并不区分单独的字符类型,即使是一个字符也作为字符串处理[^1]。 ```python # 示例代码:字符串类型 s1 = "hello" s2 = 'world' print(type(s1)) # 输出: <class 'str'> print(type(s2)) # 输出: <class 'str'> single_char = 'a' # 即使是单个字符也被视为字符串 print(type(single_char)) # 输出: <class 'str'> ``` #### 3. 布尔类型 (Boolean) 布尔类型只有两个可能值:`True` 和 `False`,通常用来表达逻辑条件的结果。 ```python # 示例代码:布尔类型 flag = True result = False print(type(flag)) # 输出: <class 'bool'> print(type(result)) # 输出: <class 'bool'> ``` #### 4. 序列类型 (Sequence Types) Python 提供了几种内置的序列类型,包括列表 (`list`)、元组 (`tuple`) 和范围对象 (`range`)。 - **列表 (`list`)** 列表是一种有序集合,可以修改其中的内容。它允许重复元素并支持索引访问。 - **元组 (`tuple`)** 元组类似于列表,但它不可变,即一旦创建就不能更改。 - **范围对象 (`range`)** 范围对象常用于循环操作中生成一系列连续整数。 ```python # 示例代码:序列类型 my_list = [1, 2, 3] my_tuple = (4, 5, 6) my_range = range(1, 5) print(type(my_list)) # 输出: <class 'list'> print(type(my_tuple)) # 输出: <class 'tuple'> print(list(my_range)) # 输出: [1, 2, 3, 4] ``` #### 5. 映射类型 (Mapping Type) 映射类型的主要代表是字典 (`dict`),它是键值对的无序集合。 ```python # 示例代码:字典类型 my_dict = {"name": "Alice", "age": 25} print(type(my_dict)) # 输出: <class 'dict'> print(my_dict["name"]) # 输出: Alice ``` #### 6. 集合类型 (Set Types) 集合类型包括可变集合 (`set`) 和不可变集合 (`frozenset`),它们都用于存储唯一的元素。 ```python # 示例代码:集合类型 my_set = {1, 2, 3} immutable_set = frozenset([3, 4, 5]) print(type(my_set)) # 输出: <class 'set'> print(type(immutable_set)) # 输出: <class 'frozenset'> ``` --- ### 关于不同进制转换的例子 对于给定的一个十六进制数值 `0x4321`,可以通过格式化输出来展示它的各种进制形式[^2]。 ```python num = 0x4321 hex_value = hex(num) # 十六进制 dec_value = num # 十进制 oct_value = oct(num) # 八进制 bin_value = bin(num) # 二进制 print(f"Hexadecimal: {hex_value}") # 输出: Hexadecimal: 0x4321 print(f"Decimal: {dec_value}") # 输出: Decimal: 17185 print(f"Octal: {oct_value}") # 输出: Octal: 0o41441 print(f"Binary: {bin_value}") # 输出: Binary: 0b100001100100001 ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值