プログラミングの新機能です。以下は、「あなたの時間単位の賃金は何ですか?」と表示されるプログラムでの私の試みです。ドルの額を読んで給与を計算します。 "1年間のあなたの総収入はXドルとYセントです。ドルセントの額からセントを分離するにはどうすればいいですか?
ドルをドルから分けるために、私はダブルからintに変換して値を切り捨てました。どのようにセントを取得するか分からなかったので、私はdollars.cents(* 100)からドルを差し引くことができたと思ったので、セントの数を持っていました
私はプログラムを実行し、
ユーザーが時間単位の賃金として18.33を入力すると、合計金額は31826、収入総額は31836.40になりますが、それらを減算して100を掛けて計算すると、私は40の代わりに39セントを与えられる。
int main(void) {
double totalIncome = 0.0;
int totalDollars = 0;
int totalCents = 0;
double hourlyWage = 0.0;
int hoursPerWeek = 40;
const int WEEKS_PER_YEAR = 52;
printf("What is your hourly wage? ");
scanf("%lf", &hourlyWage);
totalIncome = hourlyWage * hoursPerWeek * WEEKS_PER_YEAR;
totalDollars = totalIncome; //converts to int from double
totalCents = 10 * (totalIncome - totalDollars);
printf("Your total income over a year is %d dollars and %d cents", totalDollars, totalCents);
return 0;
}
'-Wall'でコンパイルすると、警告が出ますか? totalCentsをどのように割り当てると精度が低下するかと思います。しかし、私は100%確実ではありません。そのフラグでコンパイルし、チェックしてください。 –
私はこのハック解決策を思いついた... totalCents =((totalIncome + 0。005) - totalDollars)* 100; –
私はあなたが何を意味するのか分かりません-Wall私はこれまでに新鮮なものです –