鱼C论坛

 找回密码
 立即注册
查看: 1373|回复: 5

[已解决]Python中浮点数傻傻分不清

[复制链接]
发表于 2021-11-22 10:02:29 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
请问各位大神鱼油:
1.虽然我知道Python中的小数以浮点数的形式存在,但为什么程序运行结果中,有些小数只保留一位或两位小数,而有些明明可以只保留两位小数,却现实那么长的位数?
2.怎么让运行结果中的小数保留同样的位数?

运行结果如下:
Rmc_A_1(万元): 90.0
Rcc_A_1(万元): 2.0
R_A_1(万元): 92.0
L1_av(MW): 900.0
LA_1_av(MW): 9.0
RA_1(万元): 0.92
Rbc(万元): 0.5999999999999979
Rb(万元): 0.04999999999999982
Ri_s_mon(万元):-0.75
Rh_r_mon(万元):0.75
RA_1_s(万元):91.2
RA_1_r(万元):-0.12000000000000022


程序如下:

#电厂收益
Lj=10               #系统负荷10GW
L1=1                #A电厂1月最高负荷1GW
Rmc=9000            #主容量市场总收益9000W
Rcc=100             #补充容量市场总收益100W
Rmc_1=L1/Lj*9000    #运营机构在主容量市场1月的购买费用
Rcc_1=L1/Lj*100     #运营机构在补充容量市场1月的购买费用
Rmc_A_1=0.1*Rmc_1   #发电企业1月在主容量市场获得的容量收益
Rcc_A_1=0.2*Rcc_1   #发电企业1月在补充容量市场获得的容量收益
R_A_1=Rmc_A_1+Rcc_A_1   #发电企业1月在容量市场获得的容量收益
print("Rmc_A_1(万元):",Rmc_A_1)
print("Rcc_A_1(万元):",Rcc_A_1)
print("R_A_1(万元):",R_A_1)

#售电公司或用户购买费用
L1_1,L1_2,L1_3=1,0.9,0.8            #1月中系统负荷最高三天的峰值负荷
LA_1_1,LA_1_2,LA_1_3=9.5,9.0,8.5    #1月中大用户A该三天的用电负荷
R1=Rmc_1+Rcc_1                      #1月的容量市场收益
L1_av=(L1_1+L1_2+L1_3)/3 *1000      #1月系统负荷最高三天的平均负荷
LA_1_av=(LA_1_1+LA_1_2+LA_1_3) /3   #用户A在1月系统峰值的三天中对应时刻的平均负荷
RA_1=LA_1_av/L1_av*R_A_1            #用户A1月分摊的容量市场费用
print("L1_av(MW):",L1_av)
print("LA_1_av(MW):",LA_1_av)
print("RA_1(万元):",RA_1)

#场外双边协商市场结算
Pb_con=9.0
Qb_con=60*1000
Pmark=9.1
if Pmark <= Pb_con:
    Rbp=(Pb_con-Pmark)*Qb_con/10000     #电厂在双边协商交易的收益
    Rb=Rbp
    Rbp_1=Rbp/12
    Rbc_1=-Rb/12
    print("Rbp(万元):",Rbp)
else:
    Rbc=(Pmark-Pb_con)*Qb_con/10000     #用户在双边协商交易的收益
    Rb=Rbc
    Rbc_1=Rb/12
    Rbp_1=-Rb/12
    print("Rbc(万元):",Rbc)

Rb_mon=Rb/12                    #双边协商交易的收益


print("Rb(万元):",Rb_mon)

#容量权转让市场收益结算
Ph_r=Pi_s=9
Qh_r=Qi_s=10*1000
Ri_s=-Pi_s*Qi_s
Rh_r=Ph_r*Qh_r
Ri_s_mon=Ri_s/12/10000
Rh_r_mon=Rh_r/12/10000
print("Ri_s_mon(万元):",Ri_s_mon,sep='')
print("Rh_r_mon(万元):",Rh_r_mon,sep='')


#各电厂和用户的容量市场总收益/费用
RA_1_s=R_A_1+Rbp_1+Ri_s_mon
RA_1_r=-RA_1+Rbc_1+Rh_r_mon
print("RA_1_s(万元):",RA_1_s,sep="")
print("RA_1_r(万元):",RA_1_r,sep="")
































最佳答案
2021-11-22 10:19:32
用round函数保留小数位
round(x, 3)
# x: 浮点数
# 3: 保留小数位数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-11-22 10:19:32 | 显示全部楼层    本楼为最佳答案   

回帖奖励 +2 鱼币

用round函数保留小数位
round(x, 3)
# x: 浮点数
# 3: 保留小数位数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-11-22 10:23:58 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-11-22 14:16:02 | 显示全部楼层
快速收敛 发表于 2021-11-22 10:19
用round函数保留小数位

请问为什么同样的做法,有些小数就只保留两位呢,也没有后面跟一堆
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-11-22 16:29:30 | 显示全部楼层
MildHeart 发表于 2021-11-22 14:16
请问为什么同样的做法,有些小数就只保留两位呢,也没有后面跟一堆

不知道喔,但是除法结果都是浮点,可能刚好整除,python内部机制优化了输出结果
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-11-22 18:48:44 | 显示全部楼层
快速收敛 发表于 2021-11-22 16:29
不知道喔,但是除法结果都是浮点,可能刚好整除,python内部机制优化了输出结果

谢谢亲爱的鱼友~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-12 19:04

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表