6

MulDivクロスプラットフォームで使用するためにDelphiXE3の関数を定義するユニットを見つけるのを手伝ってくれる人はいますか?そのプロトタイプは(通常どおり)Windowsユニットで定義されており、OSXでは明らかに機能しません。

MulDivDelphi XE3にクロスプラットフォームで使用する機能はありますか?

4

1 に答える 1

9

MulDivクロスプラットフォームで使用するための機能はなく、Windowsからインポートされたものだけがあります。したがって、必要に応じて、さまざまなプラットフォーム用にこのような機能を自分で作成する必要があります。たとえば、Lazarusはこれに同様のコードを使用します。

function MathRound(AValue: Extended): Int64; inline;
begin
  if AValue >= 0 then
    Result := Trunc(AValue + 0.5)
  else
    Result := Trunc(AValue - 0.5);
end;

function MulDiv(nNumber, nNumerator, nDenominator: Integer): Integer;
begin
  if nDenominator = 0 then
    Result := -1
  else
    Result := MathRound(Int64(nNumber) * Int64(nNumerator) / nDenominator);
end;

ソースlcltype.ppユニットと発行#0009934

于 2013-02-25T11:33:46.347 に答える