如何在转换为字符串时打印浮点数的小数部分

时间:2018-02-17 09:35:31

标签: c++

我有一个代码,它将浮点值转换为字符串,我写的如下

#include <iostream>
#include <string>
#include <sstream> 
using namespace std;

int main() {
    float myFloat= 10.80;
    std::ostringstream ss;
    ss << myFloat;
    cout<<"value = " << ss.str();
    std::string s(ss.str());
    cout<<"value = " << s;

    return 0;
}

但问题是当我的价值是10.66时它的价格是10.66,但是当它的10.80时它的价格是10.8,或者它的10.00只是它的10只。

如何打印完整的值

4 个答案:

答案 0 :(得分:2)

试试这段代码。  将 setprecision 功能与'2'一起使用。

randomnumber=Math.floor(Math.random()*10);
while(true){
    yourguess=prompt("Please Enter A Number Between 1-10");
    if(randomnumber==yourguess){
        alert("Good Job");
        answer=prompt("Do You Want To Play More ? Y/N")
        if(answer=="Y"){

        }else{
            break;
        }
    }else{
        alert("Not Matched "+ randomnumber);
    }
}

screenshot

答案 1 :(得分:1)

只有在设置固定或科学模式时才会保留尾随零。

#include <iostream>
#include <iomanip>
using namespace std;

int main()
{
    double x  = 4.2;
    cout << fixed << setprecision(2);
    cout << x << endl;
    return 0;
}

答案 2 :(得分:0)

可能最简单的方法是使用printf而不是std::cout.。您可以专门指定要显示的位数。

#include "stdio.h"

printf("%3.2f",myfloat);

其中3是前面的数字#和2后面的数字#,可以省略。如果您想要换行,请在字符串中附加'\ n'。

编辑:好的,我不知道setprecision(2)。

答案 3 :(得分:0)

看起来你想要下面的东西。

#include <iostream>
#include <iomanip>
#include <string>
#include <sstream> 
using namespace std;

int main() {
    float myFloat= 10.80;
    std::ostringstream ss;
ss << fixed << setprecision(2) << myFloat;
    cout<<"value = " << ss.str();
std::string s(ss.str());
    cout<<"value = " << s;
}