【发布时间】:2016-01-25 00:01:45
【问题描述】:
C++ 中有没有办法将 double double typecast 转换成 float, int32 em>、uint8 或 bool 没有 丢失信息?如果不能返回错误呢?
编辑: 其实我还不够清楚……
我有一个函数,它以 double 和 type 为参数。 这个函数应该检查我是否可以将 double 类型转换为 type 而不会丢失信息。
bool check_type(double value, enumType type)
{
switch(type) {
case enum_uint8:
return "check wheter value can be typecasted to type"
break;
case enum_float:
.
.
.
}
return false;
}
【问题讨论】:
-
一个类似的问题:你能不能只用一个比特来表示两个比特的状态而不丢失信息?
-
您可以随时进行投射、投射和比较。
-
@DavidSchwartz 但这只是重新解释/输入双关语。
float/int32等值将被视为无意义或依赖于实现 -
Boost 中实现了一些错误检查。 boost.org/doc/libs/1_60_0/libs/numeric/conversion/doc/html/…
标签: c++ casting type-conversion