matlab - 将双 -8.451147490804935e+03 转换为 -8.451

Posted

技术标签:

【中文标题】matlab - 将双 -8.451147490804935e+03 转换为 -8.451【英文标题】:matlab - converting double -8.451147490804935e+03 TO -8.451 【发布时间】:2013-05-22 22:38:49 【问题描述】:

我所做的任何尝试都将其转换为 8451.114+.... 而普通双精度(没有 e 且只有 4 位精度)是它们的原始值。

试过 str2num 双转换,sprintf 以及所有谷歌首页的想法:O

并且由于该值,我的整个矩阵被破坏了,因为它将其中的任何内容都转换为 精度并更改值。

谢谢

【问题讨论】:

提供一个重现问题的简单示例,并重写您的问题主体:几乎无法理解。 【参考方案1】:

你输入:

format longG

在提示中

【讨论】:

同样的问题。数字由于某种原因更改为 *1000 我以为您遇到了格式问题。 matlab没有错。试着看看为什么计算会给出乘以 1000 的值。 数字在我猜之前已经改变...凌晨 2 点就足够了 :) 感谢您的帮助,明天继续【参考方案2】:

作为替代方案,您也可以这样做:

format shortG
str2num('-8.451147490804935E+03')

【讨论】:

以上是关于matlab - 将双 -8.451147490804935e+03 转换为 -8.451的主要内容,如果未能解决你的问题,请参考以下文章

使用 NAudio 处理后播放 wav 文件

如何将双数组列表转换为位图? [关闭]

将双精度转换为字符串

可可 - 将双精度转换为字符串

如何将双引号放入字符串文字中?

将双精度转换为字符数组 C++