Hỏi đáp
Chia sẻ kiến thức, cùng nhau phát triển
Hỏi về kiểu số int, float,... trong c# ?
08:38 25-05-2017
925 lượt xem
6 bình luận
23:14 25-05-2017
Với số tiền thanh toán < 1.000.000 thì chương trình THANH TOÁN được, còn lớn hơn thì xuất hiện "Thông Báo","Lỗi", lúc trước mình để kiểu int, sau đổi thành float, mà vẫn bị.
Code:/*
try
{
Room room = lvbill.Tag as Room;
string mahoadon = BillDAO.Instance.getBillSoPhong(room.SoPhong);
int discount = (int)nbrgiamgia.Value;
TimeSpan ts;
string a = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
ts = DateTime.Now - BillDAO.Instance.getngayvao(room.SoPhong);
double tongchiphi = Convert.ToDouble(tbtongtien.Text.Split(',')[0])*1000;
double chiphicuoicung = tongchiphi - (tongchiphi / 100) * discount + (int)ts.TotalSeconds * 16;
if (mahoadon != null)
{
if (MessageBox.Show("Thời gian kết thúc dịch vụ: " + a + Environment.NewLine + "Thời gian đã sử dụng là: " + ts + Environment.NewLine + "Chi phí thời gian sử dụng: " + (float)ts.TotalSeconds*16 + Environment.NewLine + "Mức giảm giá: " + discount + " %" + Environment.NewLine + "Tổng Thanh Toán: " + chiphicuoicung , "Thanh toán hóa cho Phòng " + room.SoPhong, MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.OK)
{
BillDAO.Instance.checkout(mahoadon, discount, (float)chiphicuoicung);
ShowBill(room.SoPhong);
Loadroom();
}
}
}
catch
{
MessageBox.Show("Lỗi", "Thông Báo");
}
*/
Tiền tệ thì thường là dùng double hoặc decimal.
Muốn hiển thị format tiền, thì ngoài property biểu thị số tiền, nên có 1 property kiểu text dùng để hiển thị số tiền theo kiểu text, đừng tiết kiệm mà phải cất công convert qua lại nhé!
cái này có thể là tràn số chăng. bạn bỏ catch đi để nó thông báo lỗi cụ thể là gì nhé
không biết có đúng ý bạn ko?
string test = "1.000.000";
double result = Convert.ToDouble(test.Replace(".", ""));