亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何防止 int 在減去后變為負數

如何防止 int 在減去后變為負數

C#
30秒到達戰場 2022-12-31 13:55:23
我正在嘗試從int具有設定值的值中減去一個值。一旦它達到 0 并且我從中減去更多,該值變為負數。我想如果我使用if-else語句來檢查該值是否低于 0,它會阻止該值變為負值。但是價值會變成負數。如何防止該值進入負值范圍?        {            DateTime start = dateTimePicker2.Value.Date;            DateTime end = dateTimePicker1.Value.Date;            TimeSpan difference = end - start;            int days = difference.Days;            int min = 0;            int max = 21;            int rdays = Convert.ToInt32(Holidays_Number_lbl.Text);            Holidays_Number_lbl.Text = (rdays - days).ToString();            int Holidays_Number = int.Parse(Holidays_Number_lbl.Text);            if ((Holidays_Number > min)  && (Holidays_Number < max))            {                MessageBox.Show("Holidays have been counted");            }            else            {                MessageBox.Show(" You have exceeded your 21 holidays  ");//value goes into the minus ?            }        }預期結果:出現 MessageBox 說你已經超過了你的天數,并且 value 沒有變成負數。實際結果:價值轉為負數。
查看完整描述

2 回答

?
拉風的咖菲貓

TA貢獻1995條經驗 獲得超2個贊

Math.Max()您可以在執行算術的行中將零指定為可能的最低值:


Holidays_Number_lbl.Text = (Math.Max(rdays - days, 0)).ToString();

但是,您要先轉換為字符串,然后再轉換回數字。這樣的事情將消除對int.Parse:


...


 int Holidays_Number = Math.Max(rdays - days, 0);

 Holidays_Number_lbl.Text = Holidays_Number.ToString();

 if ((Holidays_Number > min)  && (Holidays_Number < max))

 {


...


查看完整回答
反對 回復 2022-12-31
?
MYYA

TA貢獻1868條經驗 獲得超4個贊

此行int Holidays_Number = int.Parse(Holidays_Number_lbl.Text);正在設置 的值Holidays_Number。if然后下一行用語句檢查它。但是該if語句不會更改值,它只是檢查它。因此,如果它低于 0,它將保持在 0 以下。



查看完整回答
反對 回復 2022-12-31
  • 2 回答
  • 0 關注
  • 118 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號