Форум вопросов и ответов

Форум вопросов и ответов (https://www.otvetnemail.ru/)
-   Новый архив 3 (https://www.otvetnemail.ru/novyj-arhiv-3-813/)
-   -   Runtime округление. Как же оно работает? (оператор val) (https://www.otvetnemail.ru/novyj-arhiv-3-813/runtime-okruglenie-kak-zhe-ono-rabotaet-operator-val-301188/)

Guest 29.09.2011 21:33

Runtime округление. Как же оно работает? (оператор val)
 
Вызываем функцию:dec2bin("1234.456")Код:function dec2bin(decstring)'предполагается, что decstring уже сформирована как строка, содержащая только арабский цифры, знаки "," , "."tmp=isnumeric(decstring)decstring=val (decstring)' здесь получаем правильное десятичное представление строки =1234,456decstring=str(decstring) ' чтобы убрать возможные пробелыpoint_pos=instr(decstring,".")' первый способ выделить целую и дробную части. intpart=val(decstring) \1 'получаем правильное значение 1234drobpart=val(decstring)-decstring ' А вот здесь fail! получаем значение 0,455999999999904 !!!!'Что получаем? intpart, как и должно быть получаем равным 1234, а drobpart получаем равной 0,455999999999904'Поэтому приходится идти через задницу'intpart=cdbl(mid(decstring,1,poi nt_pos-1)drobpart=mid(decstring,point_pos,len(d ecstring)drobpart=val(drobpart)a=""For i=len(decstring) to 1 step -1if i


Часовой пояс GMT, время: 22:04.


© www.otvetnemail.ru - Форум вопросов и ответов.