【问题标题】:How to Pass Decimal Value as Argument Correctly如何正确传递十进制值作为参数
【发布时间】:2010-10-12 20:08:27
【问题描述】:

我有这个:

double myDecimal = static_cast<double>(atoi(arg_vec[1]));
cout << myDecimal << endl;

但是为什么当我这样传递参数时:

./MyCode 0.003   

它打印 0 而不是 0.003

【问题讨论】:

    标签: c++ decimal argument-passing


    【解决方案1】:
    double d = boost::lexical_cast<double>("0.003");
    

    【讨论】:

      【解决方案2】:

      由于您使用的是 C++,因此您也可以使用字符串流:

      istringstream ss(arg_vec[1]);
      double d;
      ss >> d;
      

      【讨论】:

        【解决方案3】:

        atoi() 转换为整数。你想要atof()

        或者你可以使用strtod().

        【讨论】:

          【解决方案4】:

          atoi()转成整数,你要atof(),转成double

          【讨论】:

            猜你喜欢
            • 2023-03-30
            • 2018-02-04
            • 1970-01-01
            • 2022-01-26
            • 2019-11-08
            • 2021-11-27
            • 1970-01-01
            • 2013-03-14
            相关资源
            最近更新 更多