【问题标题】:Truncating values before the decimal point截断小数点前的值
【发布时间】:2014-09-23 17:49:35
【问题描述】:

我正在尝试制作一个将厘米转换为码、英尺和英寸的计算器。示例:127.5 厘米是 1 码、1 英寸等。但我只是想知道如何保留小数点后的值,有没有办法截断小数点前的数字。因此,如果用户输入一个结果为 3.4231 码的值,我想保留值“.4231”,以便将其转换为英尺,然后将英尺转换为英寸。对不起,如果这不清楚。这适用于 python 3

【问题讨论】:

    标签: python decimal truncate


    【解决方案1】:
    >>> 3.4231 % 1
    0.4230999999999998
    

    【讨论】:

    • >>> -3.4231 % 1 产生0.5769000000000002(也许负数对于物理测量来说并不是那么重要)
    【解决方案2】:

    Ignacio 的回答很好,但如果你想让它处理负数,Python 数学库为你提供modf

    >>> math.modf(3.4321)[0]
    0.43210000000000015
    >>> math.modf(-3.4321)[0]
    -0.43210000000000015
    

    【讨论】:

      【解决方案3】:

      老式的value - int(value)有什么问题?

      【讨论】:

      • 考虑如果你的算法出现负数会做什么。
      • 结果是否定的,但这很容易处理。
      • 问题是,“有什么问题......”而不是“修复......有多难”:)
      猜你喜欢
      • 2019-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-04
      • 2019-03-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多