私はクラス用の一種のレジプログラムを作成しています。それは購入金額と入札金額を取り、残りの金額を与え、それを各請求書の数に分割します。問題は、フロートを保存しようとすると、ポイントの右側に数字が保存されないことです。
これが私のコードです:
int main(void)
{
float purchase_amount = 0.00f,
amount_tendered = 0.00f,
calculated_return = 0.00f;
float *p_return_amount;
printf("Welcome to Change Counter!\n\n");
printf("Please enter the total amount of purchase: ");
scanf("%f", &purchase_amount);
printf("\nPlease enter amount of money tendered: ");
scanf("%f", &amount_tendered);
// Debug output
printf("\n\nPurchase Amount: %.2f\nAmount Tendered: %.2f ", purchase_amount, amount_tendered);
calculated_return = amount_tendered - purchase_amount;
p_return_amount = &calculated_return;
printf("\n\nYour change is: %.2f", *p_return_amount);
system("pause");
return EXIT_SUCCESSFUL;
}
それは私が扱っているものだけである本当に大きな数でのみ起こります。14990300.54と言い、15000000.21は14990301.00と15000000.00を格納するだけだと言います。なんらかの理由で自動的に切り上げます。
構文に問題がありますか?浮動小数点が小さすぎませんか?
ありがとう。