我的别名的弧度和程度,使用浮动作为储存的类型。
当我之间的转换这两个单位,我看到大会促进的价值以双然后回到漂浮在这样做的转换。
问: 我如何能确保所有作业和转换住在漂浮?
我的代码:
using radians_f = boost::units::quantity<boost::units::si::plane_angle, float>;
using degrees_f = boost::units::quantity<boost::units::degree::plane_angle, float>;
degrees_f to_degrees(const radians_f& angle) { return static_cast<degrees_f>(angle); }
radians_f to_radians(const degrees_f& angle) { return static_cast<radians_f>(angle); }
从编译器explorer我看到下面大会的指示: https://godbolt.org/z/Gnjr54dn6
cvtss2sd 转换为一个单一的精度浮点值中的"转换-从"源操作数的双精度浮点值在目的地操作数。
mulsd -乘以低双精度浮点的价值,在第二来源操作数通过低双精度浮点值中的第一来源的操作数。
cvtsd2ss 将双精度浮点值中的"转换-从"源操作数的单个精度浮点价值
PS:我不会感到惊讶,如果我已经定义了我的别名或/和我换的功能不正确。