将double转换为Char Array C.

将double转换为Char Array C.,第1张

概述我试图将一个double转换(和舍入)到一个char数组,而不是先在double上转换为std :: to_string.但是,我正在接收随机内存文本.我究竟做错了什么? 这是我的代码: double d = 1.0929998; d = std::round(d * 100) / 100;char s[sizeof(d)];std::memcpy(s,&d,sizeof(d)); 结果: 我试图将一个double转换(和舍入)到一个char数组,而不是先在double上转换为std :: to_string.但是,我正在接收随机内存文本.我究竟做错了什么?

这是我的代码:

double d = 1.0929998; d = std::round(d * 100) / 100;char s[sizeof(d)];std::memcpy(s,&d,sizeof(d));

结果:

s: q=×£pñ?

预期价值:

s: 1.09

解决方法 您正在将双精度的字面字节转换为字符. double值是二进制表示(通常类似于 IEEE 754),而char是字符的二进制表示(通常基于 ASCII).这两个不兼容.

不幸的是,这意味着您必须进行某种转换过程.你说你不想做的std :: to_string(),或者更复杂的std :: stringbuf(无论如何都会调用std :: to_string())

总结

以上是内存溢出为你收集整理的将double转换为Char Array C.全部内容,希望文章能够帮你解决将double转换为Char Array C.所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

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

原文地址:https://54852.com/langs/1255639.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-07
下一篇2022-06-07

发表评论

登录后才能评论

评论列表(0条)

    保存