سؤال

وأواجه بعض القضايا في محاولة لتحويل مزدوج إلى سلسلة C ++. هنا هو رمز بلادي

std::string doubleToString(double val)
{
    std::ostringstream out;
    out << val;
    return out.str();
}

والمشكلة لدي هو ما إذا كان يتم تمرير ضعف في ك '10000000'. ثم قيمة السلسلة يتم إرجاعها 1E + 007

وكيف يمكنني الحصول على قيمة سلسلة باسم "10000000"

هل كانت مفيدة؟

المحلول

#include <iomanip>
using namespace std;
// ...
out << fixed << val;
// ...

ويمكنك أن تجرب استخدام setprecision لتعيين عدد من الأرقام العشرية:

out << fixed << setprecision(2) << val;

نصائح أخرى

#include <iomanip>

std::string doubleToString(double val)
{
   std::ostringstream out;
   out << std::fixed << val;
   return out.str();
}

ويمكنك أيضا تعيين الحد الأدنى للعرض وملء شار المتلاعبين STL IO، مثل:

out.width( 9 );
out.fill( ' ' );
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top