MATLAB Answers

work with numbers in number

11 views (last 30 days)
Hello! I have the number 40.201109, I need to work with numbers 109, and then with 110 and at the end of 40. Help me how to separate them

  6 Comments

Show 3 older comments
Lev Mihailov
Lev Mihailov on 19 Nov 2019
201 will not be used, but they are needed for other purposes.
40.201109 from this I should get 55.201992
Walter Roberson
Walter Roberson on 19 Nov 2019
You do not understand how you get that number.
If you have a number of the form AB.cdefgh then how should the output be formed?
Lev Mihailov
Lev Mihailov on 19 Nov 2019
Here is an example of some mathematical operations that I can do with a pen, I need to automate it all
40.201109 a=40 b=110 c=109
x1=c+b*10^-5;
x2=x1+a-b;
x3=x2+c-x1^2
x4=......
x124=55.201992
there are many operations, but if I can get a, b, c, I can fully calculate everything

Sign in to comment.

Accepted Answer

Walter Roberson
Walter Roberson on 19 Nov 2019
x = 40.201109;
xs = sprintf('%.6f', x);
a = str2double(xs(1:2));
b = str2double(xs(end-3:end-1));
c = str2double(xs(end-2:end));
This presumes there are exactly 6 significant decimal places. It is not generally possible to figure out how many significant decimal places a binary floating point number has -- for example 40.201109 is stored internally as 40.201109000000002424712874926626682281494140625 exactly.

  0 Comments

Sign in to comment.

More Answers (0)

Sign in to answer this question.

Tags

Products