Как указывали другие, причина, по которой вы получаете ошибку, заключается в том, что анализ длинного (Int64
) не поддерживает десятичные числа:
// Only supports whole numbers, throws an exception for decimal places!
(Convert.ToInt64(NightRateLabel.Text) + Convert.ToInt64(NightsLabel.Text)).ToString();
Я предполагаю, что NightRateLabel.Text
- это собственно валютная (денежная) стоимость. В этом случае вы должны использовать decimal
:
var nightRate = decimal.Parse(NightRateLabel.Text)
Вы также можете более эффективно обрабатывать сбои, используя TryParse
:
// You can inline this (remove var success = ...) of course, but I'm being verbose to demonstrate:
var success = decimal.TryParse(NightRateLabel.Text, out var nightRate);
if (!success)
{
// Handle parsing error gracefully: Show feedback to user, etc.
}
else
{
// Do something with nightRate
}