1. C# / Говнокод #4025

    +126

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    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, 18 Августа 2010

    Комментарии (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, а там он определён
      Ответить
    • нда, парень вообще забавен. стоит почитать весь топик на форуме)
      Ответить

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