Python: Converting string into decimal number

前端 未结 6 826
滥情空心
滥情空心 2020-12-03 01:00

I have a python list with strings in this format:

A1 = [\' \"29.0\" \',\' \"65.2\" \',\' \"75.2\" \']

How do I convert those strings into d

相关标签:
6条回答
  • 2020-12-03 01:22

    A2 = [float(x.strip('"')) for x in A1] works, @Jake , but there are unnecessary 0s

    0 讨论(0)
  • 2020-12-03 01:27

    If you are converting string to float:

    import re
    A1 = [' "29.0" ',' "65.2" ',' "75.2" ']
    float_values = [float(re.search(r'\d+.\d+',number).group()) for number in A1]
    print(float_values)
    >>> [29.0, 65.2, 75.2]
    
    0 讨论(0)
  • 2020-12-03 01:28

    use the built in float() function in a list comprehension.

    A2 = [float(v.replace('"','').strip()) for v in A1]

    0 讨论(0)
  • 2020-12-03 01:31

    If you want the result as the nearest binary floating point number use float:

    result = [float(x.strip(' "')) for x in A1]
    

    If you want the result stored exactly use Decimal instead of float:

    from decimal import Decimal
    result = [Decimal(x.strip(' "')) for x in A1]
    
    0 讨论(0)
  • 2020-12-03 01:33

    You will need to use strip() because of the extra bits in the strings.

    A2 = [float(x.strip('"')) for x in A1]
    
    0 讨论(0)
  • 2020-12-03 01:38

    If you are converting price (in string) to decimal price then....

    from decimal import Decimal
    
    price = "14000,45"
    price_in_decimal = Decimal(price.replace(',','.'))
    

    No need for the replace if your strings already use dots as a decimal separator

    0 讨论(0)
提交回复
热议问题