我有以下代码,我将double复制到缓冲区。然后我将缓冲区中的值复制回double,但得到值0.94999999999999996。如何确保从缓冲区复制/读取的是0.95?
double value_from = 0.95;
std::uint8_t *data = new std::uint8_t[sizeof(value_from)];
memset(data, 0x00, sizeof(value_from));
memcpy(data, &value_from, sizeof(value_from));
double value_to = 0;
memcpy(&value_to, data, sizeof(value_to));