|
|
|
Qt. Приведение типа double к Q_INT64 или Q_LLONG
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2007, 10:27 |
|
||
|
Qt. Приведение типа double к Q_INT64 или Q_LLONG
|
|||
|---|---|---|---|
|
#18+
Попробуй round() перед приведением к 64. Зачем используешь char* не понял. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2007, 10:33 |
|
||
|
Qt. Приведение типа double к Q_INT64 или Q_LLONG
|
|||
|---|---|---|---|
|
#18+
AkhЗачем используешь char* не понял.Это Borland использует в структуре XSQLVAR файл ibase.h. Я просто краткую выжимку сделал для форума. AkhПопробуй round() перед приведением к 64.Сейчас попробую. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2007, 10:38 |
|
||
|
Qt. Приведение типа double к Q_INT64 или Q_LLONG
|
|||
|---|---|---|---|
|
#18+
Код: plaintext Спасибо. Только не пойму чем double после round() круче чем простое приведение типов и круче чем ceil() и floor() - их я тоже юзал, но не помогало. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2007, 11:32 |
|
||
|
Qt. Приведение типа double к Q_INT64 или Q_LLONG
|
|||
|---|---|---|---|
|
#18+
double round(double x); ОПИСАНИЕ Эти функции округляют аргумент x до ближайшего целого значения, но при округлении в половине случаев использует направление округления от нуля (независимо от текущего направления округления), вместо округления так, как это делает функция rint(). double nearbyint(double x); ОПИСАНИЕ Функции nearbyint округляют аргумент до целого значения в формате числа с плавающей запятой, используя текущее направление округления и без вызова исключительной ошибки inexact. Функции rint делают то-же самое, но вызовут исключительную ошибку inexact, если результат отличается по значению от аргумента. Кто-нибудь может прокомментировать какую лучше использовать, чтобы получить гарантированный результат? Суть вот в чём: Пользователь ввёл число мне его необходимо в базу записать. Но InterBase типы NUMERIC хранит как INT64. При считывании 11605 * pow(10, -2) получаем 116.05 При записи 116.07 / pow(10, -2) получаем 11607.чего-то приведение типа (Q_INT64) 11607.чего-то —> получаем 11606. (Q_INT64) round(11607.чего-то) помогает и даёт 11607 Но там double round(double x); про какую-то половину случаев пишут. Какую функцию использовать, чтоб не нарваться на неприятности с заказчиками??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2007, 12:02 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=34318067&tid=2029476]: |
0ms |
get settings: |
10ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
195ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
64ms |
get tp. blocked users: |
2ms |
| others: | 245ms |
| total: | 559ms |

| 0 / 0 |
