怎样将double转换为string类型??请各位帮忙。。。

怎样将double转换为string类型??请各位帮忙。。。,第1张

#include <iostream>
#include <string>
using namespace std;
string f(double a,double b)
{
char str[100];
if(b>0)
sprintf(str,"%lf+%lfi",a,b);
else if(b<0)
sprintf(str,"%lf%lfi",a,b);
else
sprintf(str,"%lf",a);
return(str);
}
void main()
{
cout<<f(1,2)<<endl;
}

String --> double
double d = DoubleparseDouble("10");
String --> float
float f = FloatparseFloat("10f");
String --> int
int i = IntegerparseInteger("123");
呵呵,还有long也是这种用法,不过记得string在转换数值的时候,string必须是数值串。
如果包含其他字符,会报类型转化异常的。

如果你会用printf,那sprintf也不难理解:

#include <iostream>
#include <string>
using namespace std;
int main() {
    double d = 123456789;
    char buf[256] = "";
    sprintf(buf, "%lf", d);
    cout << buf << endl;
    
    string str = buf;
    cout << str << endl;
    return 0;
}

另外再推荐一个stringstream:

#include <iostream>
#include <sstream>
#include <string>
using namespace std;
string toString(double d) {
    stringstream ss;
    // 默认浮点数只输出6位有效数字,这里改成小数点后6位
    sssetf(ios::fixed);
    ss << setprecision(6) << d;
    return ssstr();
}
int main() {
    double d = 123456789;
    cout << toString(d) << endl;
    
    return 0;
}

用stringstream还可以有奇效哦!比如加上模板:

#include <iostream>
#include <sstream>
#include <string>
using namespace std;
template<typename T>
string toString(T t) {
    stringstream ss;
    sssetf(ios::fixed);
    ss << setprecision(6) << t;
    return ssstr();
}
int main() {
    // 浮点数变成字符串
    double d = 123456789;
    cout << toString(d) << endl;
    
    // 整数变成字符串
    int i = 12345;
    cout << toString(i) << endl;
    
    // 字符变成字符串
    char ch = 'A';
    cout << toString(ch) << endl;
    
    // 指针地址变成字符串
    void p = &i;
    cout << toString(p) << end;
    
    return 0;
}

在android开发过程中我们常常遇到数据类型的转换,其中double转int类型是最常见的
方法一:强制转换
int i ;
double db;
i = (int) db;
这种方法会丢失小数点后面的值
int i ;
double db;
i = (int)Mathpow(db2, n);
这种方法的好处是不会丢失小数点后面的值,不过当double值过大时,即大于int类型值得范围时还是会改变原来的值;
最好的方法是将double类型转换为String类型,由String转换为int类型
public int stringToInt(String string){
int j = 0;
String str = stringsubstring(0, stringindexOf("")) + stringsubstring(stringindexOf("") + 1);
int intgeo = IntegerparseInt(str);
return intgeo;
}

这样转的:

public static void main(String[] args) throws Exception{

double aa = stringToDouble("1223");

Systemoutprintln("aa:"+aa);

}

String转double保留N位小数:

/

String转换成double 保留N位小数。

@param a

@return

/

public static double stringToDouble(String a){

double b = DoublevalueOf(a);

DecimalFormat df = new DecimalFormat("#0");//此为保留1位小数,若想保留2位小数,则填写#00  ,以此类推

String temp = dfformat(b);

b = DoublevalueOf(temp);

return b;

}

扩展资料:

double 转string

#include <string>

CString strResultx;

strResultxFormat(_T("x:%4f\n"), 897887878);

转换结果还是放在strResultx

两个字符串相连

CString strResulty;

strResultx += strResulty;

String --> double
double d = DoubleparseDouble("10");
String --> float
float f = FloatparseFloat("10f");
String --> int
int i = IntegerparseInteger("123");
呵呵,还有long也是这种用法,不过记得string在转换数值的时候,string必须是数值串。
如果包含其他字符,会报类型转化异常的。

double型数字,转化为一个String字符串
double
d
=
134;
String
ds
=
StringvalueOf(d);
图形界面中,一个文本框中输出数字
先将数字转为字符串,如上,StringvalueOf方法是表态方法,可以将long,int
,float,short,double类型的数字转为字符串
JTextField
text
=
new
JTextField();
textsetText(ds);//注意这里是以字符串为参数的
如果你直接用数作参数,也可以这样写的:
textsetText("323");


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12904704.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-28
下一篇 2023-05-28

发表评论

登录后才能评论

评论列表(0条)

保存