Название: как ограничить float? Отправлено: Firefox от Сентябрь 29, 2009, 22:19 Пишу программу. в ней есть математические вычисления. результат в формате Float, как ограничить его, например двумя числами после запятой. сразу оговорюсь перевод в строчную форму или варианты с выводом на экран мне не подходят. ;D
Название: Re: как ограничить float? Отправлено: _OLEGator_ от Сентябрь 29, 2009, 22:25 qRound(value * 100) / 100
Название: Re: как ограничить float? Отправлено: Barmaglodd от Сентябрь 30, 2009, 08:51 qRound(value * 100) / 100 Ага, и получим целочисленный результат без дробной части.Название: Re: как ограничить float? Отправлено: Firefox от Сентябрь 30, 2009, 12:03 решила попробовать кустарным методом, но не понимаю почему не выходит.
Код: float mass[2][100]; Название: Re: как ограничить float? Отправлено: Igors от Сентябрь 30, 2009, 12:40 #include <math.h>
inline float RoundFloat( float x, int numSign = 2 ) { float fract, big, bias; fract = modf(x, &big); bias = pow(10.0f, numSign); return big + int(part * bias) / bias; } Название: Re: как ограничить float? Отправлено: Firefox от Сентябрь 30, 2009, 18:51 Спасибо всем за советы))
Название: Re: как ограничить float? Отправлено: _OLEGator_ от Сентябрь 30, 2009, 21:21 qRound(value * 100) / 100 Ага, и получим целочисленный результат без дробной части.Так не получим: Код или Код
Название: Re: как ограничить float? Отправлено: Igors от Сентябрь 30, 2009, 21:44 Код
float 1.0e+37 int 2Gb (1.0e+9) Если нет, лучше смотрится qRound(value * 100) / 100.0f Название: Re: как ограничить float? Отправлено: ax от Октябрь 01, 2009, 15:11 для double пользую
Код: #include <math.h> Название: Re: как ограничить float? Отправлено: navrocky от Декабрь 06, 2009, 13:45 Код
А стандартную функцию round отменили? Код: #include <math.h> или нужно округлять только с помощью кутэ? Название: Re: как ограничить float? Отправлено: zenden от Декабрь 06, 2009, 19:42 а где в стандартной функции задать точность ???
Название: Re: как ограничить float? Отправлено: navrocky от Декабрь 06, 2009, 22:15 round(x * 100) / 100
Название: Re: как ограничить float? Отправлено: SASA от Декабрь 07, 2009, 11:55 Я когда-то писал класс, обёртку над float. Было ограничение, что бы не меньше 0, но не больше 1. Перекрыл оператор присваивания, кострукторы. Работал как с обычным float, и не надо вызывать каждый раз специальные функции для округления.
Название: Re: как ограничить float? Отправлено: reD_Rus от Декабрь 07, 2009, 12:26 Код: qreal V=0.01*floor(100*(Vol)+0.5); http://www.ibm.com/developerworks/ru/library/l-qt_2/index.html (http://www.ibm.com/developerworks/ru/library/l-qt_2/index.html) Название: Re: как ограничить float? Отправлено: Igors от Декабрь 07, 2009, 12:54 Код: qreal V=0.01*floor(100*(Vol)+0.5); советую использовать qreal вместо float, если же конечно не под ARM процы пишешь. Не жирно ли будет для хранения данных? Люди 16-битный float используют вовсю...http://www.ibm.com/developerworks/ru/library/l-qt_2/index.html |