Python 实现小数和百分数的相互转换

最近在画图时候发现我居然不会把分数转为百分比!what?主要是之前也没有过这个需求,anyway,百度一下就有了,这里当记录!

1.百分比转为小数,这里默认百分比是字符串

# -*- coding: utf-8 -*-
s = '20%'  # 默认要转换的百分比是字符串
aa = float(s.strip('%')) # 去掉s 字符串中的 %
bb = aa/100.0
print(bb)

# 输出结果是 0.2

2.小数转为百分比 ----- "%.2f%%" % (a * 100)

#方法一

a = 0.3214323
bb = "%.2f%%" % (a * 100)
print(bb)
# 输出结果是32.14%

#方法二

a = 0.3214323

b = str(a*100) + '%'
print(b)
# 输出结果是32.14323%

用在matplotlib画图中

plt.figure(figsize=(15,7))
plt.plot(up_move['各月份上涨概率'])
for a,b in zip(up_move.index,up_move['各月份上涨概率']):
    print(b)
    plt.text(a, b+0.01, '%.3f' %b, ha='center', va= 'bottom',fontsize=20)
    #plt.text(a, b+0.01, '%.3f%%' %(b*100), ha='center', va= 'bottom',fontsize=20)
plt.ylim(0.2,0.9)
plt.show()

plt.figure(figsize=(15,7))
plt.plot(up_move['各月份上涨概率'])
for a,b in zip(up_move.index,up_move['各月份上涨概率']):
    print(b)
    #plt.text(a, b+0.01, '%.3f' %b, ha='center', va= 'bottom',fontsize=20)
    plt.text(a, b+0.01, '%.3f%%' %(b*100), ha='center', va= 'bottom',fontsize=20)
plt.ylim(0.2,0.9)
plt.show()

### Python 中将小数转换百分数的方法 在 Python 中,有多种方式可以将一个小数转换百分数。以下是几种常见的方法及其对应的示例代码。 #### 方法一:使用 `format()` 函数 `format()` 是一种强大的字符串格式化工具,能够轻松实现小数百分数转换。通过指定 `{:.2f}` 的格式符,我们可以控制输出的小数位数,并附加 `%` 符号完成转换[^1]。 ```python def dec_to_percent(decimal): percent = decimal * 100 return '{:.2f}%'.format(percent) decimal_num = 0.1234 percent_num = dec_to_percent(decimal_num) print(percent_num) # 输出: 12.34% ``` #### 方法二:利用 f-string 格式化 自 Python 3.6 起引入的 f-string 提供了一种简洁的方式来格式化字符串。这种方法同样支持浮点数的精确显示以及百分比符号的添加[^3]。 ```python a = 0.987654 formatted_percent = f"{a*100:.2f}%" print(formatted_percent) # 输出: 98.77% ``` #### 方法三:基于百分比模板替换 另一种常见的方式是采用传统的模版占位符 `%` 来定义输出样式。这里需要注意的是,连续两个 `%` 表达实际意义上的百分号本身[^4]。 ```python value = 0.3214323 result = "%.2f%%" % (value * 100) print(result) # 输出: 32.14% ``` #### 方法四:手动计算并拼接字符 如果不需要特别复杂的格式调整,也可以简单地先乘以 100 后再将其结果强制转换成字符串并与 `%` 连接起来形成最终表达形式[^5]。 ```python num = 0.75 percentage_str = str(num * 100) + "%" print(percentage_str) # 输出: 75.0% ``` 以上就是四种主要的在 Python 当中小数百分数的技术手段介绍及其实现案例说明。 问题
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值