Cardinal和Single都是4字节/ 32位的数据类型,但是当我将它们彼此类型化时,我会在
Delphi 10.1(柏林)中获得无效的Typecast错误.
lSingleVar := Single(lCardinalVar);
我不是在谈论两种类型之间的转换,因为这只会存储23位的基数(Single datatype的分数部分).我需要将最少30位数据存储到单个变量中.我有很好的理由(类型不能改变),我将很高兴地详细阐述.
如何键入单个变量?
解决方法
我会这样做:
lSingleVar := PSingle(@lCardinalVar)^;
相反的方向是:
lCardinalVar := PCardinal(@lSingleVar)^;
我不能想到一种更直接的方式来实现你所要求的.在我看来,这具有不需要任何类型或功能定义的优点.