• python学习笔记12:小数类型的角度到度分秒的转换


    目录

    实现方式1

    实现方式2


    本博客讲述了两种计算方式及其代码的实现,并在最后对比了两种方法的结果差异。

    比较结果显示,不同的实现方式之间可能存在数值误差。

    实现方式1

    具体计算步骤如下:

    1. 数值取整数部分得到度 108.5745800204 -->  108度
    2. 取小数部分乘以60得到分  0.5745800204*60 --> 34.474801224000004 --> 34
    3. 取分的小数部分乘以60得到秒 0.474801224000004 * 60 --> 28.488073440000242

    实例代码:

    1. def float2dfm(f):
    2. du = int(f)
    3. fen = int((f-du)*60)
    4. miao = ((f-du)*60-fen)*60
    5. return str(du) +'°'+ str(fen) + '′' + str(miao) + "″"
    6. float2dfm(108.5745800204)

    运行上述代码得到的转换效果为:

    108°34′28.48807344002239″

    实现方式2

    具体计算步骤如下:

    1. 数值取整数部分得到度 108.5745800204 -->  108度
    2. 取小数部分乘以60得到分  0.5745800204*60 --> 34.474801224000004 --> 34
    3. 度小数部分-分的小数值,再乘以3600 (108.5745800204 - 108 - 34/60) *3600--> 28.488073440022443

    实现代码:

    1. def float2dfm1(f):
    2. du = int(f) # 取整数部分得到度
    3. fen = int((f-du)*60) # 小数部分乘以60得到分
    4. miao = (f - du - fen/60)*3600 # 度分转化为小数的剩余部分乘以3600
    5. return str(du) +'°'+ str(fen) + '′' + str(miao) + "″"
    6. float2dfm1(108.5745800204)

    运行上述代码得到的转换效果为:

    108°34′28.488073440022443″

    比较分析:

    计算了一组数据的计算结果,对比其精度:

    原始值方法1方法2
    108.5746685377108°34′28.806735720022516108°34′28.80673572002257
    108.5746386329108°34′28.699078440016592108°34′28.699078440016645
    108.5745800204108°34′28.48807344002239108°34′28.488073440022443

    两种方法,在pyton实现时,在秒小数位的第12位之后有数值误差。

  • 相关阅读:
    docker安装redis详细教程
    java正则表达式教程
    windows下软件推荐
    Java框架 SSM整合
    Android 12.0 根据app包名授予app监听系统通知权限
    matlab数据处理
    Python学习 day01(注意事项)
    Python 文件介绍和正则表达式
    推行数字人民币对电信网络诈骗防范治理的影响分析
    【GD32F427开发板试用】+DHT11温湿度监测
  • 原文地址:https://blog.csdn.net/m1m2m3mmm/article/details/138076231