当memcpy进入缓冲区时精度为double

时间:2015-11-11 13:44:06

标签: c++

我有以下代码,我将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));

0 个答案:

没有答案