matlab定义双精度型变量_Matlab双精度数字:变量编辑器与fprintf

跟随这个问题,我正在研究Matlab中双变量的精度。 在那里,建议使用fprintf更仔细地查看变量。

奇怪的是,变量编辑器和fprintf显示的结果不同,fprintf显示的结果多一位。

% pi

Variable Editor:       3.141592653589793

fprintf('0.16f

',pi): 3.1415926535897931

vpa('pi'):             3.1415926535897932384626433832795

% pi / 180

pi180 = pi/180

Variable Editor (pi180)      0.017453292519943

fprintf('%0.16f

',pi180)    0.0174532925199433

vpa('pi/180')                0.017453292519943295769236907684886

在内部,Matlab似乎在以fprintf打印的精度工作

>> fprintf('%0.16f

',0.0174532925199433*10) % value from fprintf

0.1745329251994330

>> fprintf('%0.16f

',0.017453292519943*10)  % value from Variable Editor

0.1745329251994300

>> fprintf('%0.16f

',pi180*10)              % internal calculation

0.1745329251994330

为什么会这样?

如果在函数中使用预先计算的pi/180,是否应该使用fprintf或变量编辑器中的值?

tl; dr在变量编辑器中,Matlab截断了15位而不是16位。

我已经通过双击变量编辑器访问了变量。 这样,与指定的short格式相比,显示的位数更多。 AFAIK无法更改"双击输出"的精度。

tl; dr MATLAB中的变量使用双精度

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值