如何解决在vc ++中将String转换为double
| 谁能在vc ++中将String转换为double的方法来帮助我? 我不能使用atoi
,因为它将char转换为double。但是我正在使用istringstream
。
std::istringstream stm;
double d;
String name = \"32.67\";
stm.str(name);
stm >>d;
它将给出一个编译错误:
错误C2664:\'无效std :: basic_istringstream :: str(const std :: basic_string&)\':
无法将参数1从\'System :: String ^ \'转换为\'const std :: basic_string&\'
请提供其他解决方案帮助或更正此问题。
解决方法
std :: stringstream str()接受std :: string作为参数。无论从何而来,您都将其传递给System :: String。给定时髦的^符号,您必须使用.NET字符串使用C ++ / CLI。
除非出于某种原因需要使用.NET库,否则请使用std :: string,在这种情况下,您需要使用.NET转换函数,或者转换为std :: string(或char * c-string并使用<<操作符)。
, 正如其他响应者的建议一样,您可能正在使用C ++ / CLI。在这种情况下:
String ^ name = \"32.67\";
double d;
d = Double::Parse(name);
请注意,如果无法将字符串解析为双精度型,则会引发异常。如果要避免这种情况,请使用Double::TryParse
(如果无法解析字符串,则返回false)。
, 我认为这在vc ++ / CLR编程中非常简单。
String ^name = \"32.56\";
String ^no = \"56\";
Double number_double = Convert::ToDouble(name); // convert String to double
Int number_int = Convert::ToInt32(no); // convert String to integer
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。