【诡异的有关问题】关于浮点型数据转换成整型数据的有关问题
【诡异的问题】关于浮点型数据转换成整型数据的问题
如果输入48.32的话,那么输出的就是48 31,这是为什么呢?这种问题如何解决?
------解决方案--------------------
浮点数无法精确表示48.32,从结果来看,实际上是48.31999999999999999avvdfsgvsth...
------解决方案--------------------
楼上说的很对,
也就是机器内部的0,1组合没办法精确表示48.32
解决办法就是自己根据需要写个 四舍五入 函数
------解决方案--------------------
round
------解决方案--------------------
加个0.5
------解决方案--------------------
http://bbs.****.net/topics/390676437
------解决方案--------------------
std::round
std::lround
std::llround
(C++11)
如果输入48.32的话,那么输出的就是48 31,这是为什么呢?这种问题如何解决?
#include <iostream>
using namespace std;
int main()
{
double money;
int dollars, cents;
cin >> money;
dollars = static_cast<int>(money);
cents = static_cast<int>((money - dollars) * 100);
cout << dollars << " " << cents << endl;
}
------解决方案--------------------
浮点数无法精确表示48.32,从结果来看,实际上是48.31999999999999999avvdfsgvsth...
------解决方案--------------------
楼上说的很对,
也就是机器内部的0,1组合没办法精确表示48.32
解决办法就是自己根据需要写个 四舍五入 函数
------解决方案--------------------
round
------解决方案--------------------
------解决方案--------------------
http://bbs.****.net/topics/390676437
------解决方案--------------------
std::round
std::lround
std::llround
(C++11)