如何将数字显示从科学记数法改为数字显示?GydF4y2Ba

4,970次观看(过去30天)GydF4y2Ba
脚翼GydF4y2Ba
脚翼GydF4y2Ba 2011年8月6日GydF4y2Ba
如何使MATLAB输出全数字,而不使用科学符号?GydF4y2Ba

接受的答案GydF4y2Ba

Oleg Komarov.GydF4y2Ba
Oleg Komarov.GydF4y2Ba 2011年8月6日GydF4y2Ba
格式GydF4y2Ba长GydF4y2Ba
或GydF4y2Ba
sprintf (GydF4y2Ba' % 16. f 'GydF4y2Ba, 2332456943534324)GydF4y2Ba
9日评论GydF4y2Ba
沃尔特罗伯森GydF4y2Ba
沃尔特罗伯森GydF4y2Ba 2020年4月21日GydF4y2Ba
我相信这些地方的存储的数字不是最接近的可表示的数字的值将舍入。GydF4y2Ba

登录评论。GydF4y2Ba

更多的答案(6)GydF4y2Ba

图像分析GydF4y2Ba
图像分析GydF4y2Ba 2011年8月7日GydF4y2Ba
编辑:GydF4y2BaMathWorks支万博1manbetx持团队GydF4y2Ba 2018年11月8日GydF4y2Ba
若要在不使用科学记数法的情况下显示变量的最大位数,请将输出显示格式设置为“longG”:GydF4y2Ba
格式GydF4y2BalongGGydF4y2Ba
设置显示格式后,变量以十进制形式显示:GydF4y2Ba
m =兰德(1、3)/ 1000GydF4y2Ba
m =GydF4y2Ba
0.000546881519204984 0.000957506835434298 0.00096488853519927GydF4y2Ba
为避免显示超过2 ^ 50使用“Sprintf”的变量的科学符号。例如,此代码以十进制表示法显示第2332456943534324:GydF4y2Ba
sprintf (GydF4y2Ba' % 16. f 'GydF4y2Ba, 2332456943534324)GydF4y2Ba
ans =.GydF4y2Ba
“2332456943534324”GydF4y2Ba
有关更多信息,请参阅“格式”文档:GydF4y2Ba
2评论GydF4y2Ba
图像分析GydF4y2Ba
图像分析GydF4y2Ba 2011年8月7日GydF4y2Ba
是的,它会有帮助。有时即使是这样,也会有一些人偷偷通过(如果小数点右边有三个以上的0),就像我试过的:GydF4y2Ba
m =GydF4y2Ba
第1至第4列GydF4y2Ba
0.000538342435260057 0.000996134716626886 7.81755287531837e-005 0.000442678269775446GydF4y2Ba
列5到8GydF4y2Ba
4.63422413406744e-006 0.000774910464711502GydF4y2Ba

登录评论。GydF4y2Ba


标记Bower.GydF4y2Ba
标记Bower.GydF4y2Ba 2017年10月20日GydF4y2Ba
编辑:GydF4y2Ba标记Bower.GydF4y2Ba 2017年10月20日GydF4y2Ba
一个很好的,一致的解决方案是使用“num2str()”。来自命令行的显示器都有相同的呼叫工作:GydF4y2Ba
> val = 1234567890GydF4y2Ba
val =GydF4y2Ba
1.234567890000000 e + 09年GydF4y2Ba
> num2str(val)GydF4y2Ba
ans =.GydF4y2Ba
1234567890GydF4y2Ba
还有在打印陈述中:GydF4y2Ba
> sprintf (num2str (val))GydF4y2Ba
ans =.GydF4y2Ba
1234567890GydF4y2Ba
它也适用于浮点数:GydF4y2Ba
> val = 123456.789GydF4y2Ba
val =GydF4y2Ba
1.234567890000000 e + 05GydF4y2Ba
> sprintf (num2str (val))GydF4y2Ba
ans =.GydF4y2Ba
123456.789GydF4y2Ba
>GydF4y2Ba
2评论GydF4y2Ba
斯蒂芬。GydF4y2Ba
斯蒂芬。GydF4y2Ba 2018年2月20日GydF4y2Ba
Sprintf(Num2str(Val))GydF4y2Ba
这GydF4y2Ba Sprintf.GydF4y2Ba 完全是多余的,它在这里没有什么有用的,只是减慢了代码。在任何情况下,使用适当的GydF4y2Ba Sprintf.GydF4y2Ba 格式字符串比调用更快GydF4y2Ba num2strGydF4y2Ba ,并提供对数字数量的更多控制,所以为什么不这样做呢?GydF4y2Ba

登录评论。GydF4y2Ba


沃尔特罗伯森GydF4y2Ba
沃尔特罗伯森GydF4y2Ba 2018年2月19日GydF4y2Ba
对于MS Windows和Linux,要获得整数而不是指数形式的数字,您需要使用Symbolic toolbox或者您需要使用一个工具,例如GydF4y2Ba //www.tianjin-qmedu.com/matlabcentral/fileexchange/22239-num2strexact--exact-version-of-num2str-GydF4y2Ba 从文件交换。这对MS Windows来说是至关重要的,因为它在转换精确值方面做得相当差;Linux做得更好,但一段时间后仍然有不准确。GydF4y2Ba
在Mac (OS-X, MacOS)上,内置的转换是精确的,你可以选择sprintf()带有'%。1074 f的格式。例如,GydF4y2Ba
> > sprintf (GydF4y2Ba'%.1074f'GydF4y2Ba,eps(realmin))GydF4y2Ba
ans =.GydF4y2Ba
“0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004940656458412465441765687928682213723650598026143247644255856825006755072702087518652998363616359923797965646954457177309266567103559397963987747960107818781263007131903114045278458171678489821036887186360569987307230500063874091535649843873124733972731696151400317153853980741262385655911710266585566867681870395603106249319452715914924553293054565444011274801297099995419319894090804165633245247571478690147267801593552386115501348035264934720193790268107107491703332226844753335720832431936092382893458368060106011506169809753078342277318329247904982524730776375927247874656084778203734469699533647017972677717585125660551199131504891101451037862738167250955837389733598993664809941164205702637090279242767544565229087538682506419718265533447265625的GydF4y2Ba
对于较大的值,您可能希望从转换后的字符串中去掉末尾的零GydF4y2Ba
val = pi * 1e-200;GydF4y2Ba
regexprep (sprintf (GydF4y2Ba'%.1074f'GydF4y2Ba, val),GydF4y2Ba“0 + $”GydF4y2Ba那GydF4y2Ba''GydF4y2Ba那GydF4y2Ba“lineanchors”GydF4y2Ba)GydF4y2Ba
ans =.GydF4y2Ba
“0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003141592653589793111936498419027683964072757959391149845317813416927695644722162706379483043156554579881967829022575831926635177847590589777088086173081089243142930507159490615800591052996089483276727788901006686618108987452642387169053033459820326372299902201815389727889699071056417123601253516892437642498120285079407325647552658339885701180059456745257476645670329996938769926310811984167666114826593537757304481509915842491117931968666219637406979734598283259283758102504979792257699955371208488941192626953125的GydF4y2Ba

Kaveh Vejdani.GydF4y2Ba
Kaveh Vejdani.GydF4y2Ba 2018年2月19日GydF4y2Ba
我不明白为什么你接受了错误的答案。您正在寻找的是:格式短gGydF4y2Ba
欢呼,KavehGydF4y2Ba
3评论GydF4y2Ba
沃尔特罗伯森GydF4y2Ba
沃尔特罗伯森GydF4y2Ba 2018年2月19日GydF4y2Ba
> >格式短GydF4y2BaGGydF4y2Ba
> >πGydF4y2Ba
ans =.GydF4y2Ba
3.1416GydF4y2Ba
这是GydF4y2Ba 不GydF4y2Ba “数字全数字”GydF4y2Ba
> > 1000000GydF4y2Ba
ans =.GydF4y2Ba
1 e + 06GydF4y2Ba
这甚至不是一个“荒谬的巨大数字”GydF4y2Ba
格式短g给你最多5个有效数字。GydF4y2Ba
格式长g为您提供最多15个重要人物。事实证明,实践中的独特是不够的。唯一(PI-37 * EPS:EPS:PI + 9 * EPS)中有24个不同的可代表值,所有这些都显示为3.14159265358999,格式为34.14159265358979如果目标是输出足够的数字以便能够完全以文本形式传输值,则格式化长g不足。GydF4y2Ba
人们一直被这一点抓住了!GydF4y2Ba
格式GydF4y2Ba长gGydF4y2Ba
t = 0.3 - 0.2GydF4y2Ba
t == 0.1GydF4y2Ba
T - 0.1GydF4y2Ba
T =GydF4y2Ba
0.1GydF4y2Ba
ans =.GydF4y2Ba
逻辑GydF4y2Ba
0.GydF4y2Ba
ans =.GydF4y2Ba
-2.77555756156289 e-17GydF4y2Ba
人们很难理解为什么显示为0.1的值不等于0.1:格式长g的限制有实际的影响。GydF4y2Ba

登录评论。GydF4y2Ba


Huw年代GydF4y2Ba
Huw年代GydF4y2Ba 2017年1月31日GydF4y2Ba
如果你不需要知道所有的小数点,那就把方程圈起来。GydF4y2Ba
省去了指数函数的其他麻烦。GydF4y2Ba
1条评论GydF4y2Ba
沃尔特罗伯森GydF4y2Ba
沃尔特罗伯森GydF4y2Ba 2017年1月31日GydF4y2Ba
不幸的是,事实并非如此:GydF4y2Ba
> >格式短GydF4y2Ba
> >轮(2 ^ 54)GydF4y2Ba
ans =.GydF4y2Ba
1.8014 e + 16GydF4y2Ba
> >格式longgydF4y2BaGGydF4y2Ba
> >轮(2 ^ 54)GydF4y2Ba
ans =.GydF4y2Ba
1.8014398509482 e + 16GydF4y2Ba
> > uint64 (2 ^ 54)GydF4y2Ba
ans =.GydF4y2Ba
uint64GydF4y2Ba
18014398509481984GydF4y2Ba

登录评论。GydF4y2Ba


克里斯托BoutsikasGydF4y2Ba
克里斯托BoutsikasGydF4y2Ba 2020年4月21日GydF4y2Ba
您还可以通过命令VPA使用可变精度算术。GydF4y2Ba
vpa (x)GydF4y2Ba%如果x是你感兴趣的输出数GydF4y2Ba

标签GydF4y2Ba

社区寻宝GydF4y2Ba

找到Matlab Central中的宝藏,并发现社区如何帮助您!GydF4y2Ba

开始狩猎!GydF4y2Ba