Тема: Round не работает

#include <math.h>
Round(x,2);
не работает abs(x); ок
что делаю не так и как сделатъ чтобы работали Val, str ...
СПАСИБО

Re: Round не работает

странно.
Первый раз вижу, чтоб у раунда было два параметра.
попробуй

int round(double value);

по поводу abs, есть разница между целым и вещественным числом.
для целого int abs(int value);
для вещественного double fabs(double value);
А по поводу всего остального - язык точно С++ ?
По-моему бейсик.
И при чем тут ObjectARX?

Re: Round не работает

> Николай
#include <math.h> - это точно C или C++! biggrin

Re: Round не работает

Да я не против :)
Это и ставит в тупик.
Но функции str и val я в С++ не встречал :)
Да и help про них не знает :)
А вариант с round очень сильно смахивает на VB

Re: Round не работает

> Николай
Round это точно ВБ. Нету прототипа такой функции в math.h

> Darius
Этот код вообще компилироваться не должен. Как может еще и "не работать" - представить себе не могу.

Re: Round не работает

да этот код из VB и мне тогда нужен аналог
что мне исползоватъ б с++ ?

Re: Round не работает

> Darius
Все зависит от того, что тебе сделать надо. Для округления есть функции floor и ceil. abs возвращает модуль числа. Возьми хорошую книжку по C/C++ и почитай. Многое сразу станет понятней.

Re: Round не работает

floor и ceil работет иначе на пример мне нужен резултат 3,4512369=3,45 как сделатъ в с++?

Re: Round не работает

Darius пишет:

нужен резултат 3,4512369=3,45

И это проблема?
Кстати, если ты хочешь обрезать double, томогу тебя огорчить, не выйдет. после обрезки получится что-то типа
3,45000000000001
Но все же есть способ "обрезания", хоть и малех кривоватый.
Сразу перегоняй в строку, ее режь, а потом обратно :)
Если тебе нада просто вывести например в Edit красивое число, то хватит только перегнать в строку и обрезать лишнее.
Все зависит от поставленной цели.
И повторюсь еще раз при чем тут ObjectARX?

Re: Round не работает

ObjectARX при том что я взял координаты точки и надо написатъ с ObjectARX
не буду писатъ 159,122355454 нада 159,12

Re: Round не работает

Darius пишет:

нужен резултат 3,4512369=3,45

Если тебе надо именно два знака после запятой, то можно сделать следующее:

double value = floor( value * 100. ) / 100;

Если надо просто для вывода этого числа куда-то, то лучше, конечно, поиграться форматом вывода чисел.