将十进制值赋值为double,乘以后减去得到垃圾值

时间:2016-07-03 06:29:59

标签: c++ c gcc

为什么我这样做时会得到垃圾值?

int main(){
double shareOutstanding = 3.0000000;
double percentageToSell = 0.3542101;
percentageToSell *= 10;

percentageToSell -= shareOutstanding; //should be 3.542101 - 3.000000

cout << setprecision(16) << percentageToSell << endl;
}

它输出我想要的值但最后有垃圾值。 输出:.5421010000000002 (最后的2是垃圾。)

而不是:.542101 (我真正想要的价值。)

我认为&#34; percentageSell * = 10;&#34;部分搞砸了。我需要这条线。

请帮忙。

0 个答案:

没有答案