我对字符串流有一个小问题。当我用它将字符串转换为双精度时,它会失去精度。
const std::string str = "44.23331002";
double x;
stringstream ss;
ss << str;
ss >> x;
cout << str << " = " << x << endl;
Run Code Online (Sandbox Code Playgroud)
输出为: 44.23331002 = 44.2333
为什么是这样?它是否转换为浮点数并且数字精度有限?
我想将double转换为字符串.如果我使用Double.toString或String.valueOf,它会给出像5e-10或类似的东西.
如果我有x = 0.00000032我想要字符串"0.00000032",简单.
我做了很长时间,我想知道是否有更好(更短)的方法.
szText += String.format("%.20f", dOutput);
iZeros = 0;
for(int i=szText.length() - 1; i>=0; i--)
{
if(szText.charAt(i) == '0')
++iZeros;
else break;
}
szText = szText.substring(0, szText.length() - iZeros);
Run Code Online (Sandbox Code Playgroud) 一般来说,我一直在寻找一段时间,但找不到一个认真的答案.问题是我有一个包含某个url的QString变量,例如"C:/Users/Me/Desktop/image.png".如何打开它并在我的应用程序窗口中显示图像?我知道这个问题看似微不足道,但我找不到合适的解决方案.