Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.10.18;
Скачать: CL | DM;

Вниз

Переведите пожалуйста с паскаля на php   Найти похожие ветки 

 
DSKalugin ©   (2009-08-19 14:47) [0]

Суть в том что вещественное число хранится(разложено) в 3х полях,
а эта функция собирает его в нормальное представление

function BtrMoney2extended(lo, hi:LongInt; pp: SmallInt): Extended;
Type
 BtrMoney = record
   lo,hi : LongInt;
   pp : SmallInt;
 end;
var
 Sum: BtrMoney;
begin
 Sum.Lo := lo;
 Sum.Hi := hi;
 Sum.Pp := pp;
 Move(Sum, Result, Sizeof(Sum));
 Result:=Result/100;
end;


 
ggg ©   (2009-08-19 18:40) [1]

А как это работает? Sizeof(Sum) = 12, Sizeof(Extended) = 10.


 
Palladin ©   (2009-08-19 18:45) [2]

а оно тупо не работает )


 
Jeer ©   (2009-08-19 18:49) [3]

Не вопрос перевести и чтобы оно также тупо не работало.
Но зачем ? :)


 
Холивар   (2009-08-19 19:18) [4]


> ggg ©   (19.08.09 18:40) [1]
>
> А как это работает? Sizeof(Sum) = 12


Два последние байта - выравнивание 32 бита. А так все правильно (4 + 4 + 2) + 2 ничейных байта выравнивания до кратного 4-м. На 64-битном компиляторе(например fpc) было бы требование кратности 8-ми по-умолчанию


 
Palladin ©   (2009-08-19 19:33) [5]


> [4] Холивар   (19.08.09 19:18)

То есть ты считаешь правильным Move в переменную размером в 10, 12ти байт?


 
Холивар   (2009-08-19 19:52) [6]

> Palladin ©   (19.08.09 19:33) [5]
>
> То есть ты считаешь правильным Move в переменную размером
> в 10, 12ти байт?


Нда, тонкостей не заметил.

Вот так правильнее будет.
Move(Sum, Result, Sizeof(Result));


 
DSKalugin ©   (2009-08-20 09:34) [7]

Спасибо за поправку, но функция даже не смотря на это работала правильно на практике  

> Move(Sum, Result, Sizeof(Result));


 
Palladin ©   (2009-08-20 09:39) [8]


> Спасибо за поправку, но функция даже не смотря на это работала
> правильно на практике  

Ты хоть понимаешь что она в принципе не могла работать правильно?
По встречной полосе тоже ездить можно.



Страницы: 1 вся ветка

Текущий архив: 2009.10.18;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.014 c
15-1249326864
TStas
2009-08-03 23:14
2009.10.18
Где Ворд хранит словарь?


2-1250488501
guest
2009-08-17 09:55
2009.10.18
Word, Excel - многостраничные отчеты по шаблонам


2-1250417006
Smile
2009-08-16 14:03
2009.10.18
"Задисейблить" системную кнопку закрытия формы


2-1250659742
vegarulez
2009-08-19 09:29
2009.10.18
Вопрос про размер шрифта в приложении


15-1250659551
TUser
2009-08-19 09:25
2009.10.18
Кредит никому не надо?