如何将Scientific符号的数字显示到数字中的全部数字?gydF4y2Ba

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

接受答案gydF4y2Ba

奥列格•科马罗夫gydF4y2Ba
奥列格•科马罗夫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支金宝app持团队gydF4y2Ba 2018年11月8日gydF4y2Ba
若要在不使用科学记数法的情况下显示变量的最大位数,请将输出显示格式设置为“longG”:gydF4y2Ba
格式gydF4y2Ba龙gydF4y2Ba
设置显示格式后,变量以十进制形式显示: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
有关更多信息,请参阅“format”文档: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至8栏gydF4y2Ba
4.63422413406744e-006 0.000774910464711502gydF4y2Ba

登录评论。gydF4y2Ba


马克·鲍尔gydF4y2Ba
马克·鲍尔gydF4y2Ba 2017年10月20日gydF4y2Ba
编辑:gydF4y2Ba马克·鲍尔gydF4y2Ba 2017年10月20日gydF4y2Ba
一个好的、一致的解决方案是使用“num2str()”。同样的调用也适用于从命令行显示:gydF4y2Ba
> val = 1234567890gydF4y2Ba
val =gydF4y2Ba
1.234567890000000 e + 09年gydF4y2Ba
> num2str (val)gydF4y2Ba
ans =gydF4y2Ba
1234567890gydF4y2Ba
同样在print语句中: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 sprintfgydF4y2Ba 完全是多余的,它在这里没有什么有用的,只是减慢了代码。在任何情况下,使用适当的gydF4y2Ba sprintfgydF4y2Ba 格式化字符串会比调用更快gydF4y2Ba num2str.gydF4y2Ba ,并提供更多对数字的控制,为什么不这样做?gydF4y2Ba

登录评论。gydF4y2Ba


沃尔特·罗伯森gydF4y2Ba
沃尔特·罗伯森gydF4y2Ba 2018年2月19日gydF4y2Ba
对于MS Windows和Linux,要获得全部数量,而不是指数形式,您需要使用符号工具箱,或者您需要使用诸如此类的工具gydF4y2Ba //www.tatmou.com/matlabcentral/fileexchange/22239-num2strexact--exact-version-of-num2str-gydF4y2Ba 从文件交换。这对MS Windows来说是至关重要的,因为它在转换精确值方面做得相当差;Linux做得更好,但一段时间后仍然有不准确。gydF4y2Ba
在MAC(OS-X,MACOS)上,内置转换是准确的,您可以选择具有“%.1074f”格式的Sprintf()。例如,gydF4y2Ba
>> Sprintf(gydF4y2Ba“% .1074f”gydF4y2Ba每股收益(最小正浮点数)gydF4y2Ba
ans =gydF4y2Ba
“0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004940656458412465441765687928682213723650598026143247644255856825006755072702087518652998363616359923797965646954457177309266567103559397963987747960107818781263007131903114045278458171678489821036887186360569987307230500063874091535649843873124733972731696151400317153853980741262385655911710266585566867681870395603106249319452715914924553293054565444011274801297099995419319894090804165633245247571478690147267801593552386115501348035264934720193790268107107491703332226844753335720832431936092382893458368060106011506169809753078342277318329247904982524730776375927247874656084778203734469699533647017972677717585125660551199131504891101451037862738167250955837389733598993664809941164205702637090279242767544565229087538682506419718265533447265625'gydF4y2Ba
对于较大的值,您可能希望从转换后的字符串中去掉末尾的零gydF4y2Ba
val =π* 1 e - 200;gydF4y2Ba
Regexprep(Sprintf(gydF4y2Ba“% .1074f”gydF4y2Ba,val),gydF4y2Ba“0 + $”gydF4y2Ba,gydF4y2Ba''gydF4y2Ba,gydF4y2Ba“lineanchors”gydF4y2Ba)gydF4y2Ba
ans =gydF4y2Ba
“0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003141592653589793111936498419027683964072757959391149845317813416927695644722162706379483043156554579881967829022575831926635177847590589777088086173081089243142930507159490615800591052996089483276727788901006686618108987452642387169053033459820326372299902201815389727889699071056417123601253516892437642498120285079407325647552658339885701180059456745257476645670329996938769926310811984167666114826593537757304481509915842491117931968666219637406979734598283259283758102504979792257699955371208488941192626953125的gydF4y2Ba

Kaveh VejdanigydF4y2Ba
Kaveh VejdanigydF4y2Ba 2018年2月19日gydF4y2Ba
我不明白你为什么接受了错误的答案。你正在寻找的是:格式短ggydF4y2Ba
欢呼,KavehgydF4y2Ba
3评论gydF4y2Ba
沃尔特·罗伯森gydF4y2Ba
沃尔特·罗伯森gydF4y2Ba 2018年2月19日gydF4y2Ba
>>格式短gydF4y2BaggydF4y2Ba
>> PI.gydF4y2Ba
ans =gydF4y2Ba
3.1416gydF4y2Ba
这是gydF4y2Ba 不gydF4y2Ba "全数字"gydF4y2Ba
> > 1000000gydF4y2Ba
ans =gydF4y2Ba
1 e + 06gydF4y2Ba
这甚至不是一个“荒谬的巨大数字”gydF4y2Ba
格式短g给你最多5个有效数字。gydF4y2Ba
格式长g最多给你15个有效数字。事实证明,在实践中,仅仅是独一无二是不够的。在unique中有24个不同的可表示值(pi-37*eps:eps:pi+9*eps),所有这些值在格式长g下显示为3.14159265358979。如果目标是输出足够的数字以能够以文本形式准确传输值,那么格式长g是不够的。gydF4y2Ba
人们总是会被这种事抓住的!gydF4y2Ba
格式gydF4y2Ba长ggydF4y2Ba
T = 0.3 - 0.2gydF4y2Ba
T = = 0.1gydF4y2Ba
T - 0.1gydF4y2Ba
t =gydF4y2Ba
0.1gydF4y2Ba
ans =gydF4y2Ba
逻辑gydF4y2Ba
0gydF4y2Ba
ans =gydF4y2Ba
-2.77555756156289e-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
>>格式龙ydF4y2BaggydF4y2Ba
>>圆形(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
1评论gydF4y2Ba
沃尔特·罗伯森gydF4y2Ba
沃尔特·罗伯森gydF4y2Ba 2020年4月21日gydF4y2Ba
这就是我和史蒂文讨论“符号工具箱”时提到的。gydF4y2Ba

登录评论。gydF4y2Ba

标签gydF4y2Ba

社区寻宝gydF4y2Ba

在MATLAB中心找到宝藏,并发现社区如何可以帮助你!gydF4y2Ba

开始狩猎!gydF4y2Ba