lyxleo 2019-07-07 23:43 采纳率: 0%
浏览 790
已采纳

字符串能不能转换成浮点数?

我最近在学习超高精度数字的加减法(比如精确到小数点后100位),于是我写了一个函数来计算,代码如下。如有其它缺陷,请各位大神帮忙指出。

import math
def DoublePlus(*pluser):
    #检测传入的加数是不是小数
    pluser=list(pluser)
    m=0
    for i in pluser:
        pluser[m]=str(i)
        m=m+1
    print(pluser)
    m=0
    for i in pluser:
        m=m+1
        print(i.find('.'))
        if not (i.find('.')==-1):
            pass
        else:
            raise ValueError ("在第"+str(m)+"个加数中不是小数")
    #通过竖式的方式进行加法运算
    #共进行pluser的长度-1次循环
    for index in range(len(pluser)-1):
        x=pluser[index]#加数1
        y=pluser[index+1]#加数2
        print(math.floor(int(x)))
        x_integer_part=math.floor(int(x))#加数1的整数部分
        y_integer_part=math.floor(int(y))#加数2的整数部分
        #取x和y的小数部分
        x_point=x.find('.')
        x_decimal_part=int('0'+x[x_point::])
        y_point=y.find('.')
        x_decimal_part=int('0'+y[y_point::])
        #开始计算(小数部分 )
        #位数少的补0
        if len(x_decimal_part)>len(y_decimal_part):
            poor=x_decimal_part-y_decimal_part
            y_decimal_part=y_decimal_part+'0'*poor
        elif len(y_decimal_part)>len(x_decimal_part):
            poor=y_decimal_part-x_decimal_part
            x_decimal_part=x_decimal_part+'0'*poor
        else:
            pass
        #倒序
        x_decimal_part=x_decimal_part[::-1]
        y_decimal_part=y_decimal_part[::-1]
        #初始没有进位
        carry=False

if __name__=='__main__':
    DoublePlus(15.685,2.1,3.1,4.1)

但是print(math.floor(int(x)))
这一行老是报错,说:ValueError: invalid literal for int() with base 10: '15.685',虽然能看懂,但不知道如何解决,Python2的string库在3中已经无法使用了,实在不知道如何解决,求各位大神帮忙解决,感谢!

  • 写回答

1条回答 默认 最新

  • 吃鸡王者 2019-07-08 09:47
    关注

    直接float(x) 就可以了,你float(int(x)) 是什么意思??

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

    报告相同问题?

    悬赏问题

    • ¥15 最小生成树问题 Prim算法和Kruskal算法
    • ¥25 医院住院病人呼叫器设计
    • ¥15 不想和现在的团队合作了,怎么避免他们对程序动手脚
    • ¥30 c++类和数组实验代码
    • ¥20 C语言字符串不区分大小写字典排序相关问题
    • ¥15 关于#python#的问题:我希望通过逆向技术爬取1688搜索页下滑加载的数据
    • ¥15 关于Linux的终端里,模拟实现一个带口令保护的屏保程序遇到的输入输出的问题!(语言-c语言)
    • ¥30 请问,这个嵌入式Linux系统怎么分析,crc检验区域在哪
    • ¥15 二分类改为多分类问题
    • ¥15 Unity微信小游戏上调用ReadPixels()方法报错