C#/ QML类型转换(double / real / float)

时间:2011-11-29 10:44:03

标签: c# floating-point double qml type-conversion

我的C#项目正在从QML文件中读取一些配置。

问题是我不确定某些转换......

QML        C#
int    <-> int
string <-> string
bool   <-> bool

没问题

我不确定QML中的实/双(在C#中浮动/加倍) 我查找了一些关于精度的信息,但没有发现任何非常清楚的信息。

QML中的double是否相当于C#中的double? QML中的实数是否等同于C#中的float?

1 个答案:

答案 0 :(得分:1)

C#规范说:

  

C#支持两种浮点类型:float和double。 float和double类型使用32位单精度和64位双精度IEEE 754格式表示

因此,float和double之间的唯一区别是C#的精度。

The QML reference says for Double

  

双精度数有小数点,以双精度,IEEE浮点格式存储。

and for the real

  

在QML中,所有实数都以单精度IEEE浮点存储   格式。

他们互相尊重IEEE 754标准。 所以QML中唯一的真差异和双精度差异也是精确度。

根据this table,将C#float类型解析为真正的QML类型并将C#double类型解析为QML中的两倍可能是一个好主意。