fuyu-fuyu
@fuyu-fuyu (ゆ ふ)

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

基礎プログラミング100本ノック 44番

解決したいこと

換算したい金額(円単位)と1ドル何円かを整数値で入力すると、入力した金額が何ドル何セントか計算して表示するプログラムを作成せよ。1セントは1/100ドルである。結果は整数値でよい(1セント未満の端数切り捨て)。まず何ドルになるかを整数値で計算する。次に、1ドルに満たない金額をセントに換算する。浮動小数点型の変数を使ってもよいが、使わない方法を考えてみよう。

という問題で、小数点以下を表示するにはどうしたらいいですか?
bにはいる式がわかりません。

Windowsフォームアプリケーションで作成したいです。

該当するソースコード

ソースコードを入力
```int num = int.Parse(textBox.Text);
int num2 = int.Parse(textBox2.Text);

int a = num / num2;

MessageBox.Show(num+ "円は" + a + "ドル" + b + "セント");



### 自分で試したこと
テキスト型に変更して("F2")を使用した
0

3Answer

@kiyokuroさん
余りだけですと、セントの値が求まっていないです。
余りを使うなら、余りからまたレートを計算してあげないといけないですね。

極端な例ですが、以下の場合誤った値になります。

var yen = 10;
var rate = 3;

var dollars = yen / rate;
var cents = yen % rate;

System.Console.WriteLine(yen+ "円は" + dollars + "ドル" + cents + "セント");
// 10円は3ドル1セント

余りを利用しつつもう一度レートから計算してあげれば、正しい数値となります。

var yen = 10;
var rate = 3;

var dollars = yen / rate;
var cents = (yen % rate) * 100 / rate;

System.Console.WriteLine(yen+ "円は" + dollars + "ドル" + cents + "セント");
// 10円は3ドル33セント
2Like

普段はRubyを使っているためRubyでの回答ですがご了承ください。
%演算子で割り算のあまりを計算できるため利用できます

yen = 120 #120円
rate = 100 #レートは1/100 なので100

dollars = yen / rate #120/100=1
cents = yen % rate #120%100=20。%演算子で割り算のあまりを計算

MessageBox.Show(yen+ "円は" + dollars + "ドル" + cents + "セント");

0Like

Comments

  1. @fuyu-fuyu

    Questioner

    ありがとうございます!!

いくつか方法はあると思いますが、1つ例をあげるなら以下のようなやり方が考えられると思います。

int b = (num - a * num2) * 100 / num2;

numからa * num2を引くことでドルで換算した残りが得られます。
その後、1ドル:num2 円 => 100セント:num2 円なので、以下のように計算できます。

100:num2 = (num - a * num2):x
x = (num - a * num2) * 100 / num2

0Like

Comments

  1. @fuyu-fuyu

    Questioner

    わかりやすい説明ありがとうございます!!

Your answer might help someone💌