我有一个代码,它将浮点值转换为字符串,我写的如下
#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只。
如何打印完整的值
答案 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);
}
}
答案 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;
}