我對C++有點新(我已經學習了幾個月,現在開啓和關閉),並試圖製作一個Calculator應用程序。我通過指導瞭解了語言是如何工作的,我非常瞭解它。有一個類的問題在C++中返回一個小數作爲分數
我使用Fractions的類 - 與我的成員變量私人和功能(設置,獲取等)下公共。我遇到的問題是我的一個函數 - 目的基本上是返回所述分數的小數形式。我可以在Main中直接進行數學運算,並且即使不使用setprecision也總能輸出小數位數,所以它可以很好地工作。
但是,每當我在類函數內部使用相同的數學運算時,它總是張貼第一個數字。
我可能犯了一個錯誤的地方,但我似乎無法找到它,並希望你罰款人可以伸出援助之手:d
這裏是我的主CPP文件
//
// main.cpp
// Calculator
//
// Created by Bryan Douglas on 2017-03-30.
// Copyright (c) 2017 Bryan Douglas. All rights reserved.
//
#include "Fraction.h"
#include <iostream>
#include <string>
int main(int argc, const char * argv[]) {
Fraction fiftyoverhundred(50, 100);
std::cout << "The decimal of the fraction you have entered is " << fiftyoverhundred.getDecimal() << std::endl;
}
這裏我的分數頭文件
//
// Fraction.h
// Calculator
//
// Created by Bryan Douglas on 2017-03-30.
// Copyright (c) 2017 Bryan Douglas. All rights reserved.
//
#ifndef Calculator_Fraction_h
#define Calculator_Fraction_h
class Fraction {
private:
float m_numerator = 0;
float m_denominator = 0;
public:
Fraction(int numerator, int denominator);
~Fraction();
void setNumerator(int NumeratorInput) { m_numerator = NumeratorInput;};
int getNumerator() { return m_numerator;};
void setDenominator(int DenominatorInput) { m_denominator = DenominatorInput;};
int getDenominator() { return m_denominator;};
float getDecimal() {return (float)m_numerator/(float)m_numerator;};
};
#endif
最後,這裏是我的分數CPP文件
//
// Fraction.cpp
// Calculator
//
// Created by Bryan Douglas on 2017-03-30.
// Copyright (c) 2017 Bryan Douglas. All rights reserved.
//
#include "Fraction.h"
#include <stdio.h>
Fraction::Fraction(int numerator, int denominator)
{
m_numerator = numerator;
m_denominator = denominator;
}
Fraction::~Fraction()
{
}
我知道我的編碼標準和術語可能不及專業人士,但我喜歡在功能測試完成後按照計劃進行修復。
預先感謝您!
檢查'getDecimal'你的計算。 – tkausl
看來問題是你的函數中的一個簡單的錯字計算分裂。 – AlexG
你的代碼很混亂。你將分子和分母存儲爲浮點數,然後將它們轉換...我猜你的錯誤的來源是相似的。你應該再次閱讀代碼,並確保你瞭解那裏的內容。也許你輸入得太快了。 – luk32