【问题标题】:Python program to add decimal point based on given valuePython程序根据给定值添加小数点
【发布时间】:2021-09-30 14:32:17
【问题描述】:

标题可能会让您感到困惑! 别着急,我这里已经解释过了:

例如,如果我通过 convert(11098,3),convert() 函数应该返回 11.098。 我正在传递 convert(11098,2),所以 convert() 应该返回 110.98。

在这里,任何整数都应通过基于给定分数添加小数点来转换为浮点数。基于分数,它应该添加小数点。

有什么数学公式可以转换吗?我可以在我的 python 代码中实现它们。

【问题讨论】:

    标签: python math numbers number-formatting


    【解决方案1】:

    这是一个你可以理解的简单解决方案 -

    def convert(number,points):
        decimal = pow(10,points) # power function
    
        return number / decimal
    
    num = convert(11098,3)
    print(num)
    

    所以这里,decimal 变量决定了除数的点数。

    结果-

    11.098
    

    另一个例子-

    num = convert(11098,5)
    print(num)
    # Output: 0.11098
    

    【讨论】:

      【解决方案2】:

      我不太确定是否有现成的功能可以做到这一点,但你可以这样做:

      def convert(value, decimals):
           value = str(value) # convert value to string-type for indexing
           d1 = value[:-decimals] # d1 comes before the decimal
           d2 = value[-decimals:] # d2 comes after the decimal
           output = f"{d1}.{d2}" # join d1 and d2 with . using f-string
           return output
      
      print(convert(11098, 2))
      
      110.98
      

      请注意,输出也将是字符串类型,如果需要,您可以使用return float(output) 将其更改为浮点类型。

      希望对您有所帮助!

      如果我的字符串操作不清楚,您可以阅读我在 LearnDataSci 上发布的这篇文章以获取更多信息: https://www.learndatasci.com/solutions/python-substring/

      【讨论】:

        【解决方案3】:

        在这里,我们可以使用一点数学。

        众所周知,任何数除以 10 的幂时,小数点左移的次数与除数中的 0 相同。

        我们可以将除数 10 提高到用户提供的幂。

        这样,您将获得所需的输出。

        def convert(x,d):
            return int(x) / 10**d
        
        print(convert(11098,2))
        

        【讨论】:

          【解决方案4】:

          你可以用一些 python lambda 函数来试试这个。

          convert = lambda I, F: I/ 10**F
          print(convert(11098, 3))
          # output:
          # 11.098
          

          【讨论】:

            【解决方案5】:
            import math
            def convert(num,power):
            return (float)(num/math.pow(10,power))
            

            math.pow(x,y) 函数返回 x^y
            为了移动小数位,我们取 10 的幂,然后我们可以移动小数位

            【讨论】:

            • 请解释为什么此代码有效。简单地发布代码是不好的。另外,你需要格式化你的代码,见how?
            猜你喜欢
            • 1970-01-01
            • 2011-09-08
            • 1970-01-01
            • 1970-01-01
            • 2022-01-20
            • 2020-03-28
            • 1970-01-01
            • 2019-01-02
            相关资源
            最近更新 更多