st2de.m

来自「i hope use every file i put here to evry」· M 代码 · 共 50 行

M
50
字号
function [D] = st2de(S)

% converts string number into decimal number

len = length(S);

% look for decimal point in input string
% if there is a decimal point separate number into whole and fraction part in Sa and Sb
pnt = 0;
for k = 1:len
    if S(k) == '.'
        pnt = k;
        if pnt == 1
            Sa = '0';
        else
            Sa = S(1:k - 1);
        end
        Sb = S(k + 1:len);
    end
end

% if decimal point was not found, just convert whole part and set fraction part to 0
if pnt == 0
    Sa = S;
    Sb = 0;
    
% if decimal point was found, convert fraction part
else
    den = 10;
    s = 0;
    for k = 1:length(Sb)
        Sb(k) = Sb(k) - 48;
        s = s + (Sb(k) * 1/den);
        den = den * 10;
    end
    Sb = s;
end

% convert whole part
num = 1;
s = 0;
for k = length(Sa):-1:1
    Sa(k) = Sa(k) - 48;
    s = s + (Sa(k) * num);
    num = num * 10;
end
Sa = s;

% add whole part and fraction part
D = Sa + Sb;

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?