我想使用逗号作为千位分隔符将数字转换为字符串。像这样的东西:
x = 120501231.21;
str = sprintf('%0.0f', x);
但有效果
str = '120,501,231.21'
如果内置的 fprintf
/sprintf
不能做到这一点,我想可以使用正则表达式来做出很酷的解决方案,也许通过调用 Java(我假设有一些基于语言环境的格式化程序),或者有一个基本的字符串插入操作。但是,我不是 Matlab 正则表达式或从 Matlab 调用 Java 方面的专家。
相关问题: How can I print a float with thousands separators in Python ?
在 Matlab 中是否有任何既定的方法可以做到这一点?
最佳答案
用千位分隔符格式化数字的一种方法是调用 Java 语言环境感知格式化程序。 “Undocumented Matlab”博客中的“formatting numbers”文章解释了如何执行此操作:
>> nf = java.text.DecimalFormat;
>> str = char(nf.format(1234567.890123))
str =
1,234,567.89
其中 char(...)
将 Java 字符串转换为 Matlab 字符串。
瞧!
关于regex - 如何在 Matlab 中打印带有千位分隔符的整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13512710/