【问题标题】:String to double with decimal用小数加倍的字符串
【发布时间】:2015-05-06 23:19:15
【问题描述】:

假设我有一个字符串s = '128.0',我想将其转换为双精度,

我正在尝试使用:

news = str2double(s);

但是 s 的值变成了 128。我希望 str2double 函数将小数点识别为数字的一部分。

有什么办法吗?

提前致谢

【问题讨论】:

  • 那么 128 和 128.0 有什么区别?您可以使用format long 获得不同的结果。
  • 同意@thewaywewalk。你想要更高的精度吗?
  • 小数点不是数字的一部分。它是s 中数字的字符串表示形式的一部分,但一旦转换为数字,它就只是一个数字,它不包括格式。
  • 将其转换回字符串是完全不同的事情。您将能够准确指定小数点后显示的位数,例如通过使用spintf。然而,对于双精度计算,这并不重要。
  • @JurgenCuschieri 你是在暗示数字 128 与 128.0相同吗?

标签: string matlab double


【解决方案1】:

str2double 符合您的预期。输入whos newsclass(news),你会看到变量news 的类型是double

>> class(news)
ans =
double

(您可以使用str2num 获得相同的结果:news = str2num(s); 也返回double。)

你看到的事实

>> news =
      128

没有小数点只是表示的问题。 double类型的数字128当然和128.0是一样的。

【讨论】:

  • s = 116.0 ans = char news = 116 ans = double 这是我的问题!我需要 news 与 s 相同(带小数点)但类型为 double (这样我可以将其用于计算)
  • 这只是表示。编号相同,类型为double。查看编辑后的答案
猜你喜欢
  • 1970-01-01
  • 2013-11-24
  • 2021-12-11
  • 1970-01-01
  • 1970-01-01
  • 2021-01-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多