2017-07-24 47 views

回答

1

documentation for real

注:在QML所有的实数都存储在双精度,IEEE浮点格式。

documentation on data type conversion

+----------------+----------------+ 
| Qt Type  | QML Basic Type | 
+----------------+----------------+ 
| [...]   | [...]   | 
| double  | double  | 
| [...]   | [...]   | 
| float, qreal | real   | 
+----------------+----------------+ 

因此,根据该文件不是一切都neccessarily铸造到real,但一切都将具有相同的精度,所以我觉得你可以投或比较它们的你喜欢。

您可以创建一个JavaScript Library,在其中实现该功能,正如您的问题中所述。
或者你可以创建一个C++对象,并且你可以直接在C++中实现。然后你可以决定是否在每个文件中实例化这个对象,你需要它的地方,还是创建一个单例实例作为库。 AFAIK QML在静态函数方面存在问题并需要该对象的一个​​实例。

我不知道QML中的任何预定义变量指定了epsilon。在C++中,对我来说是这样的:

std::numeric_limits<double>::epsilon() -> 2.220446049250313e-16 

所以这个东西可能是一个不错的选择。

+0

所以,每当我比较,我想用小量做一个高精度的比较。你有什么建议,我应该怎么做'qml'文件?或者你认为不需要在'qml'文件中复制下面的方法(问题中提到)? 'bool AreSame(double a,double b){return to fabs(a - b)

+1

好吧,我主要关注的是“*或者,它是在QML中被真正转化为真实的吗?” – derM

+0

:)这个问题的主要目标是如何复制这个: 'bool AreSame(double a,double b){return fabs(a - b)