**#入力した値の特定の位で四捨五入を行うプログラム(桁の指定の端数処理)
**
私が自分で作ってみました。
桁の指定の端数処理
#include <stdio.h>
int main(void){
int d;
double a,b,c;
printf("四捨五入を行う値:"); scanf("%lf",&a); printf("四捨五入を行う位:"); scanf("%lf",&b); d=(a/(b*10)+0.5); c=(int)d*100; printf("四捨五入を行った場合の結果は%fです。\n",c); return 0;
}
これで実行すると、
例えば1234.56 位は10 →1200.000000 となり正しくなるのですが
1234.56 位は0.01 →1234600.000000 これは間違いになります。
個人的にc=(int)d*100が間違っているのかな、と思っています。
良ければ桁を戻す方法や間違っている場所を教えてください。
C# のタグは外してください。
失礼いたしました
編集させていただきます
> 私が入力したプログラム
とても微妙な表現ですが、あなたが自分で作ったものではないということですか?(「消防署の方から来た」みたいな...) あなたが自分で作ったのか、他人が作ったものを「入力しただけ」なのかによって回答の説明が変わるかも知れません。
四捨五入を行う値、四捨五入を行う位について制限はありますか。小数下第三位で四捨五入を行いたいときはどのように入力するのですか?
> 10の位は結果と同じになるのですが、0.01等小数点以下の位を入力すると異なります。
「同じ」とか「異なる」というには2つ(以上)のモノが必要です。
どういう値を入力すると、期待する値がこうで、実際に得られた値がどうであった、という「事実をそのまま」記して下さい。
修正してみました。わかりにくい所、おかしい部分があればお願いします
C#タグがまだ残っていますね
コードやエラーはマークダウンのcode機能を利用してご提示ください。
https://teratail.com/questions/238564
C# のタグで検索などしている人にとっては迷惑です。分かってますか?
すみません タグの削除をして更新したのですが、何回行っても削除されません、どこからタグの削除を行えばよいですか →解決しました
失意致しました。削除できたと思います。よろしくお願いします
コードやエラーはマークダウンのcode機能を利用してご提示ください。
https://teratail.com/questions/238564
回答2件
あなたの回答
tips
プレビュー