1. Всем пользователям необходимо проверить работоспособность своего электронного почтового адреса. Для этого на, указанный в вашем профиле электронный адрес, в период с 14 по 18 июня, отправлено письмо. Вам необходимо проверить свою почту, возможно папку "спам". Если там есть письмо от нас, то можете не беспокоиться, в противном случае необходимо либо изменить адрес электронной почты в настройках профиля , либо если у вас электронная почта от компании "Интерсвязь" (@is74.ru) вы им долго не пользовались и хотите им пользоваться, позвоните в СТП по телефону 247-9-555 для активации вашего адреса электронной почты.
    Скрыть объявление

Обсуждение Программирование на C/C++

Тема в разделе "Мастерская", создана пользователем ansis, 13 июн 2006.

  1. ansis

    ansis

    Репутация:
    695
    ansis, 13 июн 2006
    Эта тема предназначена для обсуждения и решение любых проблем, связанных с программированием на языке C/C++, обмена секретами, опытом и помощи в программирование другим пользователям.

    Также рекомендуется ознакомиться со справочной литературой:
    Страуструп Б. - Язык программирования С++. Special Edition.djvu 10.02 Мб
    Шилдт Г. - Самоучитель С++.pdf 2.48 Мб
    [C] Архангельский - программирование в C builder 6.djvu 17.30 Мб

    Ссылки на компиляторы:
    И не забывайте оформлять свой код тегом
    Код:
    [/B][/COLOR]
     
    #1
  2. MaR*DeR

    MaR*DeR Ословед

    Репутация:
    217
    MaR*DeR, 15 июн 2006
    Вот есчо у меня один глупый вопрос возник, как можно десятичные числа переконвертировать?
    Допустим дано число с разделителем в виде запятой, а надо в виде точки или наоборот
     
    #2
  3. FRostbite

    FRostbite

    Репутация:
    74
    FRostbite, 15 июн 2006
    число в стринг переведи и мучай.
     
    #3
  4. MaR*DeR

    MaR*DeR Ословед

    Репутация:
    217
    MaR*DeR, 15 июн 2006
    Так не прокатит, надо проводить вычисления.
     
    #4
  5. FRostbite

    FRostbite

    Репутация:
    74
    FRostbite, 15 июн 2006
    как это не прокатит 0_o там 2 слева знак меняешь который не влияет на все остальное. какие еще вычисления ?
     
    #5
  6. MaR*DeR

    MaR*DeR Ословед

    Репутация:
    217
    MaR*DeR, 15 июн 2006
    Ты имеешь в виду переводить в стринг потом искать знак, удалять , вставлять новый и потом опять в число ? Как-то криво тогда будет, да и кода наверное много.
    Вообщем у меня значения хранятся в базе данных, нужно их загрузить произвести расчёты и записать опять же в базу. Но косяк в том, что в базе они храняться с запятой, а не точкой.:huh:
     
    #6
  7. Dr_B

    Dr_B Ословед

    Репутация:
    11.592
    Dr_B, 15 июн 2006
    По этому вопросу обращайтесь к "гуру" С++ ув. тов. Borschtsch'у. :) . Весь ослик построен на Visual C++ (а он еще и потруднее будет, чем простой С или С++).
     
    #7
  8. Shell

    Shell Ословед

    Репутация:
    15.127
    Shell, 15 июн 2006
    Они как хранятся? Обычно в БД есть всякие методы для извлечения и записи полей в виде вещественных чисел, в C++ Builder называется AsFloat
     
    #8
  9. FRostbite

    FRostbite

    Репутация:
    74
    FRostbite, 15 июн 2006
    да, именно )Если не устраивает думаю лучше погуглить , больше вариантов я не знаю)
     
    #9
  10. MaR*DeR

    MaR*DeR Ословед

    Репутация:
    217
    MaR*DeR, 15 июн 2006
    Хранятся в базе SQL Server'a, соединяю через ADO, объясни про методы.
    Переменные в Си (в которые копируются значения и с которыми производятся расчёты) у меня типа float и в БД поля тоже float разница тока в разделителях.
     
    #10
  11. Shell

    Shell Ословед

    Репутация:
    15.127
    Shell, 15 июн 2006
    Builder или Visual?
    В Builder
    Код:
    Table1->FindField("Price")->AsFloat=Table1->FindField("Price")->AsFloat*1.5;
    Запятые только на экране, в БД они храанятся в вещественном виде. Если хочешь, чтобы на экране были точки
    Пуск - Панель управления - язык и региональные стандарты - настройка - меняешь разделитель целой дробной части
    перезапускаешь программу и на экране точки
     
    #11
  12. MaR*DeR

    MaR*DeR Ословед

    Репутация:
    217
    MaR*DeR, 15 июн 2006
    В Билдере.
    Сейчас попеределывал немного, но всё равно не робит,
    пишу AsFloat всё нормально переделывается в "." , провожу расчёты получаю значение(опять же с точкой),
    но потом мне надо записать результат в базу и вот тут трабл идёт (в БД нужна запятая видимо). Ошибка идёт на sql запросе (Insert ...) :
    Insert Error: Column name or number of supplied values does not mach table definition
     
    #12
  13. Shell

    Shell Ословед

    Репутация:
    15.127
    Shell, 15 июн 2006
    А при извлечении с помощью AsFloat дробная часть правильна?

    Попробуй изменить региональные настройки и перезапустить SQL Server. Что-нибудь изменилось?
     
    #13
  14. MaR*DeR

    MaR*DeR Ословед

    Репутация:
    217
    MaR*DeR, 15 июн 2006
    Ыть...Заработало :D . Псиба, но вот как сделать, чтобы например эти настройки программно менялись, иначе ведь это надо на каждой машине изменять :blink:
    И ещё возникла одна проблема, не работает округление RoundTo, тоесть если указываешь положительный параметр то все работает при отрицательнои ничего не происходит : TovarSum =RoundTo(TovarSum,-2);
    Сдаётся мне что это опять из-за долбанного разделителя, найти наверное не может...
     
    #14
  15. Shell

    Shell Ословед

    Репутация:
    15.127
    Shell, 15 июн 2006
    Попробуй изменить в программе переменную
    Код:
    DecimalSeparator='.';
    Если не поможет, то используй тяжелую артиллерию
    Код:
    char saveLocale[10];
    //в начале программы
    GetLocaleInfo(LOCALE_USER_DEFAULT,
    LOCALE_SDECIMAL,saveLocale,10);
    SetLocaleInfo(LOCALE_USER_DEFAULT,
    LOCALE_SDECIMAL,".");
    ...
    //в конце программы
    SetLocaleInfo(LOCALE_USER_DEFAULT,
    LOCALE_SDECIMAL,saveLocale);
    Ко всем большая просьба, если вы размещаете код программы, то помещайте его в теги:[noparse]
    Код:
    значение
    [/noparse] / ansis
     
    #15
  16. Shell

    Shell Ословед

    Репутация:
    15.127
    Shell, 15 июн 2006
    Разделитель тут точно не при чём
    А TovarSum какого типа?
    Лучше юзать double
     
    #16
  17. MaR*DeR

    MaR*DeR Ословед

    Репутация:
    217
    MaR*DeR, 15 июн 2006
    Работает, тяж.артилерия не понабилась :) . C double заработало, а почему с float не работает (мне так для общего развития =) ?)
     
    #17
  18. Shell

    Shell Ословед

    Репутация:
    15.127
    Shell, 15 июн 2006
    Во float всего 6-7 цифр точных, округлять нечего. Если сумма больше миллиона, то в копейках фигня.
    В double точность в два раза больше
     
    #18
  19. Drakkar

    Drakkar Ословед

    Репутация:
    1.290
    Drakkar, 17 июн 2006
    Проблемка с графиком DBChart... строится график Bar зависимости количества продаж товаров от времени. Все столбцы разного цвета. Как в легенде к графику указать какой цвет к какому товару принадлежит?
     
    #19
  20. MaR*DeR

    MaR*DeR Ословед

    Репутация:
    217
    MaR*DeR, 17 июн 2006
    Plz напомните как с вектором работать, тему где спрашивал потёрли :(
     
    #20
Загрузка...