Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Qt toDouble()方法强制转换为int_C++_Qt_Casting_Double - Fatal编程技术网

C++ Qt toDouble()方法强制转换为int

C++ Qt toDouble()方法强制转换为int,c++,qt,casting,double,C++,Qt,Casting,Double,我有一个问题,铸造双。我将两个字符串转换为double,一个转换良好,另一个转换为int,但这是相同的代码 QTextStream lecture(&file); ligne = lecture.readLine(); double x = ligne.split(" ")[0].toDouble(); double y = ligne.split(" ")[1].toDouble(); std::cout << " x en string = " <<ligne

我有一个问题,铸造双。我将两个字符串转换为double,一个转换良好,另一个转换为int,但这是相同的代码

QTextStream lecture(&file);
ligne = lecture.readLine();
double x = ligne.split(" ")[0].toDouble();
double y = ligne.split(" ")[1].toDouble();
std::cout << " x en string = " <<ligne.split(" ")[0].toStdString() << "; y en string = " << ligne.split(" ")[1].toStdString() <<  std::endl;
std::cout << " x = " << x << "; y = " << y <<  std::endl;

如果看到结果,则x不是十进制数。

x的值实际上是正确的

你的问题实际上是:

std::cout << " x = " << x ;
注意:您需要

#include <iomanip>
#包括

请参阅setprecision()(和其他流操纵器)的其他信息。

x实际上具有正确的值

你的问题实际上是:

std::cout << " x = " << x ;
注意:您需要

#include <iomanip>
#包括

请参阅setprecision()(和其他流操纵器)的其他信息。

您能告诉我们什么是ligne吗?是的,我编辑了我的帖子。但是字符串转换是可以的,所以我不认为它来自于ligneth这只是四舍五入,我相信如果你把数值直接赋给x会怎么样。只是为了确保这不是一种形成问题,比如说?基本格式为文本文件。我直接在Double中把它分配给x你能告诉我们什么是ligne吗?是的,我编辑了我的帖子。但是字符串转换是可以的,所以我不认为它来自于ligneth这只是四舍五入,我相信如果你把数值直接赋给x会怎么样。只是为了确保这不是一种形成问题,比如说?基本格式为文本文件。我直接把它赋给双倍的x,你是什么意思?赋值(double x=ligne.split(“”[0].toDouble();)很好,是您的输出错误(请随意用英语和法语询问详细信息,我会用两种语言回答。)好的,所以如果我想使用x,我可以确保它包含精度为的值?x包含988284.9。稍后使用(添加等)将使用其值(988284.9)。但是,在执行std::cout时,只能得到有限的位数(默认为6位,988284.9=988285的6位数字-四舍五入到最接近的数字)。如果希望看到更多数字,则需要使用setprecision()请求更多数字。但这仅适用于使用std::cout的输出,仅使用x就可以了。注意:对于具有大量数字的数字,字符串和double之间可能存在微小差异,因为double的精度也有限(这应该足够了)。您的意思是什么?赋值(double x=ligne.split(“”[0].toDouble();)很好,是您的输出错误(请随意用英语和法语询问详细信息,我会用两种语言回答。)好的,所以如果我想使用x,我可以确保它包含精度为的值?x包含988284.9。稍后使用(添加等)将使用其值(988284.9)。但是,在执行std::cout时,只能得到有限的位数(默认为6位,988284.9=988285的6位数字-四舍五入到最接近的数字)。如果希望看到更多数字,则需要使用setprecision()请求更多数字。但这仅适用于使用std::cout的输出,仅使用x就可以了。注意:对于具有大量数字的数字,字符串和double之间可能存在微小差异,因为double的精度也有限(这应该足够了)。
#include <iomanip>