我有一个这样的结构体,其中包含一个显式转换为float的方法:
struct TwFix32
{
public static explicit operator float(TwFix32 x) { ... }
}
我可以通过一个显式的单一强制类型转换将TwFix32转换为int: (int)fix32
但是要将其转换为十进制数,我需要使用两个转换: (decimal)(float)fix32
从float到int或十进制数都没有隐式转换。为什么当我要去int时编译器允许我省略中间的float转换,但是当我要去十进制数时就不行了呢?