c#定点到浮点
本文关键字: | 更新日期: 2023-09-27 17:52:17
我正在尝试使用示例代码从这里获得真正的字体字形轮廓。
代码中有一些小错误,包括它只考虑表示字形的点位置的定点值的整个部分。
似乎有很多将浮点值转换为固定值的例子,但反之则没有。如何将整个FIXED值转换为浮点值?
我猜是
public struct FIXED
{
public short fract;
public short value;
}
要转换为浮点数的。这样的定点数可以这样转换
var fix = new FIXED { value = 42, fract = 16384 };
double floating = fix.value + (double)fix.fract / 65536;
除以65536
,因为short
是16位(2^16)。实际上有点奇怪的是它是short
而不是ushort
因为分数不可能是负的