Is there a format in MATLAB to display numbers such that commas are automatically inserted into the display?
146 views (last 30 days)
Show older comments
MathWorks Support Team
on 12 Mar 2012
Edited: MathWorks Support Team
on 29 Feb 2024
I would like to display large numbers with commas separating the digits for readability purposes. For example, I would like MATLAB to display one billion as 1,000,000,000 rather than 1000000000. How can I do this?
Accepted Answer
MathWorks Support Team
on 26 Feb 2024
Edited: MathWorks Support Team
on 29 Feb 2024
You can enhance the readability of large numbers by formatting them with commas to separate digits using the "java.text.DecimalFormat" class. See the below code for an example of this:
function numOut = addComma(numIn)
import java.text.*
jf=java.text.DecimalFormat; % comma for thousands, three decimal places
numOut= char(jf.format(numIn)); % omit "char" if you want a string out
end
Then, calling the function will result in a comma separated number.
addComma(10000.12)
% 10,000.12
0 Comments
More Answers (2)
Ted Shultz
on 13 Jun 2018
A simple way is to add this two line function:
function numOut = addComma(numIn)
jf=java.text.DecimalFormat; % comma for thousands, three decimal places
numOut= char(jf.format(numIn)); % omit "char" if you want a string out
end
Hope that helps! --ted
0 Comments
Toshiaki Takeuchi
on 14 Nov 2023
Using pattern
vec = 123456789;
txt = string(vec);
pat1 = lookBehindBoundary(digitsPattern); % (?<=\d)
pat2 = asManyOfPattern(digitsPattern(3),1); % (\d{3})+
pat3 = lookAheadBoundary(pat2+lineBoundary("end")); % (?=(\d{3})+$)
pat4 = pat1+pat3; % (?<=\d)(?=(\d{3})+$)
replace(txt,pat4,",")
3 Comments
Toshiaki Takeuchi
on 30 Jan 2024
How about this?
str = arrayfun(@(x) string(num2str(x)), (0:500:2000)');
str2 = [str;str + ".12345"]
pat1 = lookBehindBoundary(digitsPattern); % (?<=\d)
pat2 = asManyOfPattern(digitsPattern(3),1); % (\d{3})+
pat3 = lookAheadBoundary(pat2+lineBoundary("end")); % (?=(\d{3})+$)
pat4 = pat1+pat3; % (?<=\d)(?=(\d{3})+$)
isDecimal = contains(str2,".");
str3 = split(str2(isDecimal),".");
str2(isDecimal) = str3(:,1);
str4 = replace(str2,pat4,",");
str4(isDecimal) = str4(isDecimal) + "." + str3(:,2)
See Also
Categories
Find more on Characters and Strings in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!