私はC++を少し新しくしました(私は数ヶ月間それを学んでいます)。そして、電卓アプリケーションを作ろうとしています。私はガイドを通して学んだように、言語の仕組みをかなりよく理解しています。クラスを持つ問題は、C++で小数点以下を小数点として返します。
私はFractionsのクラスを使用します。私のメンバ変数はprivateであり、関数(set、getなど)はpublicです。私が抱えている問題は、私の関数の1つです。目的は、基本的には、小数点以下の形を返すことです。私はMainで数学を直接行うことができ、setprecisionを使わなくても常に小数点を出力することで素晴らしい結果が得られます。
しかし、私がクラス関数の中で同じ数学を使うときはいつも、それは常に1番です。
私はどこかで間違いを犯してもよいが、私はそれを見つけるように見えることはできませんし、あなた罰金の人々が手を貸すことができ期待していた。ここでは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