- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
if (needParce)
{
try
{
count = decimal.Parse(tb_count.Text.Replace(".", ","));
}
catch
{
count = decimal.Parse(tb_count.Text.Replace(",", "."));
}
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+108
if (needParce)
{
try
{
count = decimal.Parse(tb_count.Text.Replace(".", ","));
}
catch
{
count = decimal.Parse(tb_count.Text.Replace(",", "."));
}
}
ан нет. просто автор не вспомнил и решил сделать так сказать "условную компиляцию"
double dd = double.Parse(str.Replace(".",","));
Интересный результат, на самом деле выходит, получается что replace не даст никакого эффекта, если он не находит искомую подстроку или символ для замены, а при вызове double.Parse, видимо, происходит Trim входной строки и в итоге 1 0 превращается в 10 и dd = 10.0. Хитрый майкрософт. Ошибка просто проглатывается, фактически.
При этом
string str1 = "1,0";
string str2 = "1.0";
double dd1 = double.Parse(str1);
double dd2 = double.Parse(str2);
такой код породит ошибку только во втором случае, тогда нафига вот это вот было?
count = decimal.Parse(tb_count.Text.Replace(",", "."));
Хотя решение все равно через жопу, можно было попросить спарсить с другими настройками.
Да ... были времена.
к тому же.