- 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(",", "."));
}
}
Smekalisty 16.06.2014 11:38 # 0
bormand 16.06.2014 12:05 # +1
Smekalisty 16.06.2014 12:15 # 0
kegdan 16.06.2014 14:05 # 0
ан нет. просто автор не вспомнил и решил сделать так сказать "условную компиляцию"
Smekalisty 16.06.2014 11:42 # 0
cyperh 16.06.2014 12:43 # 0
bormand 16.06.2014 13:29 # +1
cyperh 16.06.2014 14:46 # 0
double dd = double.Parse(str.Replace(".",","));
Интересный результат, на самом деле выходит, получается что replace не даст никакого эффекта, если он не находит искомую подстроку или символ для замены, а при вызове double.Parse, видимо, происходит Trim входной строки и в итоге 1 0 превращается в 10 и dd = 10.0. Хитрый майкрософт. Ошибка просто проглатывается, фактически.
cyperh 16.06.2014 14:47 # 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(",", "."));
Vindicar 16.06.2014 18:15 # 0
Хотя решение все равно через жопу, можно было попросить спарсить с другими настройками.
absolut 16.06.2014 13:31 # 0
Soul_re@ver 16.06.2014 13:48 # +1
absolut 16.06.2014 13:53 # +3
eth0 16.06.2014 18:44 # +4
absolut 16.06.2014 19:59 # 0
Да ... были времена.
Lure Of Chaos 17.06.2014 10:58 # +2
к тому же.
a282750 24.08.2021 22:40 # 0