通用数字文字 bool isUnit(Vec)(在Vec v中,浮动公差=kindaSmallNumber){ 进口标准数学:abs; 进口标准conv:to; 自动长度=v.lengthSquared; 返回abs(至!(类型(长度))(1)-长度

通用数字文字 bool isUnit(Vec)(在Vec v中,浮动公差=kindaSmallNumber){ 进口标准数学:abs; 进口标准conv:to; 自动长度=v.lengthSquared; 返回abs(至!(类型(长度))(1)-长度,d,D,这里我只想计算1-length,但length可以是double或float类型。我不想在运行时将1从整数转换为float或double 我必须做才能!(typeof(length))(1)-长度或者我可以只做1-长度和1将始终与长度的类型相同 1的类型与此无关。它将自动转换为适合长度算术的类型 从 如果其中一个操作数是浮点类型,则另一个操作数隐式转换为浮点,并通过常用的算术转换将其转换为公共类型 所以它是由编译器自动完成的(当然,顺便说一句,这在编译时是已知的,所以它在这里不做任何运行时的事情

这里我只想计算
1-length
,但length可以是double或float类型。我不想在运行时将1从整数转换为
float
double


我必须做
才能!(typeof(length))(1)-长度
或者我可以只做
1-长度
1
将始终与长度的类型相同

1的类型与此无关。它将自动转换为适合长度算术的类型

如果其中一个操作数是浮点类型,则另一个操作数隐式转换为浮点,并通过常用的算术转换将其转换为公共类型

所以它是由编译器自动完成的(当然,顺便说一句,这在编译时是已知的,所以它在这里不做任何运行时的事情)

但对于其他想知道特定问题答案的人,可以使用类型化文字,如
1.0
,或类型构造函数,如
typeof(length)(1)