【发布时间】:2012-11-10 13:25:38
【问题描述】:
我在 C++ 中有以下函数:
std::wstring decToDeg(double input)
{
int deg, min;
double sec, sec_all, min_all;
std::wstring output;
sec_all = input * 3600;
sec = Math::Round(static_cast<int>(sec_all) % 60, 3); //code from @spin_eight answer
min_all = (sec_all - sec) / 60;
min = static_cast<int>(min_all) % 60;
deg = static_cast<int>(min_all - min) / 60;
output = deg + L"º " + min + L"' " + sec + L"\"";
return output;
}
当我尝试编译时出现此错误:
error C2679: binary '=' : no operator found which takes a right-hand operand of type 'System::String ^' (or there is no acceptable conversion)
如何纠正函数中的这两个错误?
编辑:已解决
std::wstring decToDeg(double input)
{
int deg, min;
double sec, sec_all, min_all;
sec_all = input * 3600;
sec = Math::Round(static_cast<int>(sec_all) % 60, 3);
min_all = (sec_all - sec) / 60;
min = static_cast<int>(min_all) % 60;
deg = static_cast<int>(min_all - min) / 60;
std::wostringstream output;
output << deg << L"º " << min << L"' " << sec << L"\"";
return output.str();
}
【问题讨论】:
-
sec_all是double,错误信息很清楚。 -
另外,您正在尝试将数字与字符串相加,而这在 C++ 中是无法做到的
-
您能告诉我如何解决这些错误吗?我对 C++ 完全陌生...
-
查看stackoverflow.com/questions/64782/… 了解修复#2 的各种方法
-
这不是 C++。它是 C++/CLI。
标签: syntax compiler-errors c++-cli