Есть веб-форма, на которой 2 текст бокса, в эти текстбоксы заносятся значения, double, их я проверяю, чтобы они были с точностью до двух знаков после запятой.
Делаю я это следующим образом:
if ((Thickness1 * 100) % 1 != 0 || (Thickness2 * 100) % 1 != 0)
{
Master.AlertMessage = "Толщина стенки до и после зачистки должна быть указана с точностью до десятых или до сотых";
return false;
}
Но он все равно не пропускает числа, которые с двумя знаками после запятой или с одним
Значения которые попадают : Thickness1 = 8.95 и Thickness2 = 7.45
Может подсказать кто, в чем моя ошибка?
UPD:
Преобразование числа которое приходит из текстбокса в Double
Double Thickness1 = 0;
Double Thickness2 = 0;
Double.TryParse(txbZachistkaThickness1.Text.Replace('.', ',').Trim(), out Thickness1);
Double.TryParse(txbZachistkaThickness2.Text.Replace('.', ',').Trim(), out Thickness2);
Берите строки, и смотрите, что там после точки.
В конце концов, 1.00 - это тоже величина с точностью до сотых :)
И еще - подумайте - какой, кроме нулевого, может быть остаток при делении на 1? (увы, не знаю, как в C#, но в С/С++ % - операция целочисленная, и %1 всегда равен 0...)
Сборка персонального компьютера от Artline: умный выбор для современных пользователей