ページ 11

小数点以下が表示されない

Posted: 2016年6月14日(火) 20:15
by ダイキ
割り算した後表示するときに小数点以下が表示されないので
間違いを指摘してください

コード:

#include <iostream>
#include <algorithm>
#include <iomanip>
#include <string>
#include <cmath>
using namespace std;
int main(){
	int a,b;
	double i;
	string op;
	cin>>a>>op>>b;
	if(op == "+"){
		i = a+b;
	} else if(op == "-"){
		i = a-b;
	} else if(op == "*"){
		i = a*b;
	} else if(op == "/"){
		i =(double)a/b;
	} else{
		return 0;
	}
	cout<<setprecision( 6 )<<i<<endl;

	


	return 0;
}

Re: 小数点以下が表示されない

Posted: 2016年6月14日(火) 22:21
by box
私のところではうまくいきました。試しに
7
/
4
と入力したところ、
1.75
という結果を得ました。

Re: 小数点以下が表示されない

Posted: 2016年6月14日(火) 22:53
by inec0310
私の環境でもうまくいきました
7
/
5

1.4
となりましたソースには問題はないかと

Re: 小数点以下が表示されない

Posted: 2016年6月14日(火) 23:13
by みけCAT

コード:

6 / 3
を入力したところ、

コード:

2
という出力を得ました。

期待する仕様が書かれていないのが間違いでしょう。

Re: 小数点以下が表示されない

Posted: 2016年6月15日(水) 19:03
by かずま
小数点を出したいのなら fixed を使えばよいのでは?

コード:

#include <iostream>

using namespace std;

int main()
{
    int a, b;
    double i;
    char op;
    cin >> a >> op >> b;
    if (op == '+')
        i = a + b;
    else if (op == '-')
        i = a - b;
    else if (op == '*')
        i = a * b;
    else if (op == '/')
        i = (double)a / b;
    else
        return 0;
    cout << fixed << i << endl;
    return 0;
}
op を string にすると、3+5 で、a = 3, op = "+5" となるので、
op は char のほうがよくないですか?