|
|
|
интересно - почему ТАК?!
|
|||
|---|---|---|---|
|
#18+
1. select cast(cast(878.87000001*100.00 as numeric(15,2)) as integer)/100.00 from rdb$database результат - 878,87 2. select cast(cast(2878.87000001*100.00 as numeric(15,2)) as integer)/100.00 from rdb$database результат - 2878,8699999999999 а хотелось бы получить 878,87 ...вообщем-то - "играюсь" уже битый час - и с каждым примером - результат, чесно говоря, уже предугадать тяжеловато ..может кто обьяснит где "грабли"?! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2004, 16:08:13 |
|
||
|
интересно - почему ТАК?!
|
|||
|---|---|---|---|
|
#18+
Граблей нет. Просто есть такое понятие, как погрешность разрядной сетки. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2004, 16:19:04 |
|
||
|
интересно - почему ТАК?!
|
|||
|---|---|---|---|
|
#18+
авторГраблей нет. Просто есть такое понятие, как погрешность разрядной сетки. :) ..понял...но все-таки я из select cast(cast(2878.87000001*???? as numeric(15,2)) as integer)/???? from rdb$database хочу ПОЛУЧИТЬ 878,87 это реально!!!!!!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2004, 16:26:42 |
|
||
|
интересно - почему ТАК?!
|
|||
|---|---|---|---|
|
#18+
Так ты реально это и получил !!! С учетом погрешности р.с. А вот как ты это видишь - другой вопрос... :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2004, 16:30:18 |
|
||
|
интересно - почему ТАК?!
|
|||
|---|---|---|---|
|
#18+
авторА вот как ты это видишь - другой вопрос... ..если можно - то с этого места поподробнее..все таки так хочется увидеть 2878,87 а не 2878,8699999999999 Это реально???? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2004, 17:20:31 |
|
||
|
интересно - почему ТАК?!
|
|||
|---|---|---|---|
|
#18+
Просто вступает в действие механизм хранения дробных чисел. Там есть дробная часть и ехпонента. Дробная часть кажется <10 и >=0,1. А что это - тысячи или миллионы показывает експонента 10 в степени x. У тебя во втором числе в челой части на 1 знак больше - значит дробная часть вещественного числа потеряет один знак точности (отбрасыванием не умещающихся частей). Короче, тебе просто неповезло. Можешь попробовать это на инженерном калькуляторе. Возводи число в квадрат, пока експонента не будет хотя бы больше 10, а затем начни извлекать квадратный корень - исходного числа (основания степени) ты не получишь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2004, 09:16:27 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=32609754&tid=1578225]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
197ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
| others: | 196ms |
| total: | 468ms |

| 0 / 0 |
