Си диез / Говнокод #4025 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
  36. 36
  37. 37
  38. 38
  39. 39
  40. 40
  41. 41
  42. 42
  43. 43
  44. 44
  45. 45
  46. 46
  47. 47
public string ConvDoubToStr(double doub)
        {
            string str = ((int)doub).ToString();
            double k = (doub - (int)doub);
            if (k > 0)
                str += ",";
            while (k > 0)
            {
                k = k * 10;
                switch ((int)k)
                {
                    case 0:
                        str += "0";
                        break;
                    case 1:
                        str += "1";
                        break;
                    case 2:
                        str += "2";
                        break;
                    case 3:
                        str += "3";
                        break;
                    case 4:
                        str += "4";
                        break;
                    case 5:
                        str += "5";
                        break;
                    case 6:
                        str += "6";
                        break;
                    case 7:
                        str += "7";
                        break;
                    case 8:
                        str += "8";
                        break;
                    case 9:
                        str += "9";
                        break;
                }
                k = k - (int)k;
            }
            return str;
 
        }

Мега конверт
http://www.cyberforum.ru/csharp-net/thread20446.html#post667930

Запостил: Nigma143 Nigma143, (Updated )

Комментарии (12) RSS

  • Прочитайте то сообщение на форуме(http://www.cyberforum.ru/csharp-net/thread20446.html#post667930 )

    "инетересно,что операция k = (doub - (int)doub) при doub=123.123 дала: k=0.12300000000000466, при том что сам (int)doub, естественно, равнялся 123 ровно."
    "связано это с тем,что тип дабл "понимает" 15 знаков после запятой, но не больше. поэтому там в конце чушь и получается. "

    Тип жжёт
    Ответить
  • вот ещё:
    "String.Format("{0:F10}",s).TrimEnd( del)
    честно сказать, я не уверен, что это будет работать быстрее,чем мой конвертер."

    Конвертер Попова, скоро, на каждом школьном компьютере.
    Ответить
  • я знаю как улучшить этот код!

    вместо str += ","; надо написать что-то вроде
    ds = system.localization.getCurrentCulture(). getDeceminalSeparator();
    switch (dc)
    {
    case ".":
    str += ",";
    break;
    case ",":
    str += ".";
    break;
    case default:
    str += ",";
    }
    Ответить
    • или еще круче.
      брать сепаратор не функцией, а свичем по каррент калчер.

      ну и конечно сделать аутпут красивее. сам сепаратор вставлять между каждой триадой в целой части.
      Ответить
  • а зачем вообще это всё нужно?) ToString (); же метод есть в любом встроенном типе, ибо наследуется от object, а там он определён
    Ответить
  • нда, парень вообще забавен. стоит почитать весь топик на форуме)
    Ответить

Добавить комментарий

Семь раз отмерь — один отрежь, guest!

    А не использовать ли нам bbcode?


    8