[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Помогите перевести с delphi на php
Гость_Dmitry
Суть в том что вещественное число хранится(разложено) в 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;




Спустя 7 минут, 19 секунд (19.08.2009 - 14:04) Michael написал(а):
Я смотрю, что основной код в функции Move.
Вообще в PHP есть хорошие функции по вычислениям с произвольной точностью - bcadd(), bcmul() ...

Спустя 34 минуты, 23 секунды (19.08.2009 - 14:38) Guest написал(а):
процедура Move копирует определенное количество байт из одной переменной в другую не зависимо от типа этих переменных
Как это сделать на php? и как там объявить структуру record
Цитата

Delphi syntax:
procedure Move(const Source; var Dest; Count: Integer);

C++ syntax:
extern PACKAGE void __fastcall Move(const void *Source, void *Dest, int Count);

Description
Move copies Count bytes from Source to Dest.



Спустя 18 минут, 57 секунд (19.08.2009 - 14:57) Guest написал(а):
В php нет чёткой типизации переменных.

Давайте так, вы скажите что должно быть на входе функции и что на выходе,
несколько вариантов и возможно что то напишем тут.

record можно представить как объект, так и как массив(хеш),
лучше вобщем что нужно получить от функции, а то так не совсем понятно.

Спустя 2 минуты (19.08.2009 - 14:59) Guest написал(а):
в принципе не ясно как это в result копируется весь объект sum и потом это добро делится на 100)

Спустя 30 секунд (19.08.2009 - 15:00) Michael написал(а):
Типа записи нет в PHP. Можно объявить массив:
PHP
$mas='';
$mas['lo']=$lo;
$mas['hi']=$hi;
//...



Спустя 2 минуты, 47 секунд (19.08.2009 - 15:03) Michael написал(а):
Цитата (Guest @ 19.08.2009 - 11:59)
в принципе не ясно как это в result копируется весь объект sum и потом это добро делится на 100)

С++ функция тупо переписывает байты записи поочереди - и получается число. Сколько с Delphi связан никогда таких чудес не встречал - что там проблемы с вещественными числами?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.