1. 程式人生 > >python3 將科學計數法(用E表示的)轉化為書寫形式的科學計數法的數字

python3 將科學計數法(用E表示的)轉化為書寫形式的科學計數法的數字

import re


def fun(numstr: str):
    """需要輸入為字串"""
    num = numstr.upper()
    if 'E' not in num:
        return numstr
    lower = {'0': '⁰', '1': '¹', '2': '²', '3': '³', '4': '⁴', '5': '⁵',
             '6': '⁶', '7': '⁷', '8': '⁸', '9': '⁹', '+': '', '-': '⁻'}  # '+': '⁺' 省略加號

    e = num.find('E')

    big = num[:e]
    symbol = '×10'
    if num[e + 1] in ('+', '-'):
        symbol += lower.get(num[e + 1])
        e += 1

    num2 = num[e + 1:]
    # 去除多餘的0
    for i in range(len(num2)):
        if num2[i] == '0':
            e += 1
        else:
            break

    little = ''.join([lower.get(i) for i in num[e + 1:]])
    return big + symbol + little


print(fun('12315e021512'))    # 12315×10²¹⁵¹²