Если заявление не выполнено, хотя оно должно быть - PullRequest
0 голосов
/ 16 марта 2020

Я делаю калькулятор оплаты сверхурочных в ржавчине. У меня есть следующий код ниже:

let overhours = 40;
let overhoursFLOAT = overhours as f32;

if calcpay > overhours{
    println!("You worked more than 40 hours!");
    let overmath = floathours - overhoursFLOAT as f32; 
    println!("You worked {} extra hours.",overmath);
    let overpay = overmath * 1.5;
    floatpay = floatpay + overpay;
}
else{println!("You did not work more than 40 hours. Therefore, your overtime pay will not be calculated.");}

Каждый раз, когда я запускаю его, количество часов, которые я ввожу (я делаю 10) меньше 40, и код оператора if все равно выполняется. В итоге это выглядит так:

How much do you get paid per hour?: 9
Hourly pay: 9
How much did you work?: 10
Hourly pay: 9
Hours worked: 10
Your calculated pay is $90
You worked more than 40 hours!
You worked -30 extra hours.

Я неправильно использую операторы? Как я могу это исправить?

1 Ответ

1 голос
/ 16 марта 2020

вы сравниваете calcpay с дополнительными расходами, а calcpay равен 90. Я предполагаю, что вы хотели сравнить сверхурочные часы с отработанными часами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...