C ++函数返回0而不是0.35

时间:2019-10-09 04:35:21

标签: c++ function

我试图从主函数调用十进制函数。此函数返回任何给定数字小数点右边的内容。当我打印出返回十进制函数的rightSide的值时,该值正确(0.35)。但是,在我从主函数调用十进制函数并尝试保存返回值之后,返回值(main中的变量a)为0。基本上,我要打印的两个值应该相同,但不是相同的。

#include <iostream>
#include<iomanip> 
using namespace std;

int integer(double number) {
    int leftSide;
    leftSide = number;
    return leftSide;
}

int decimal (double number) {
    int leftSide;
    double rightSide;
    leftSide = integer(number);
    rightSide = number - leftSide;
    cout << "rightSide: " << rightSide
    return rightSide;
}

int main() {
    double x;
    x = decimal(3.25);
    cout << "x: " << x << endl;
    return x;
}

2 个答案:

答案 0 :(得分:2)

是的,整数并不算小数位,令人讨厌的事实是它们不是整数,而是整数。也许考虑一种可以处理小数点的类型?

double decimal (double number) {
    int leftSide;
    double rightSide;
    leftSide = integer(number);
    rightSide = number - leftSide;
    return rightSide;
}

答案 1 :(得分:1)

int decimal (double number)应该为double decimal(double number),否则您在命令返回代码时不能返回分数。