私は、DataSnapとTetheringを使用してDelphiでサービスを開発しており、接続されたクライアントに情報を送ります。さて、フィールドのいくつかは、 "FormatFloat( '$、0 ###'、field)という関数を使って文字列に変換すると浮動小数点になります。それは私に別のフォーマットを与えます。つまり、フォーマットI Windowsで設定されています。 "千単位の区切り記号と小数点の "、"は反対ですが。私は15674.45を$ 15,647.45でなく$ 15.647,45にしたいと思います。しかし、私はフォーマットを強制したくありません。 DelphiのバージョンではDelphiで開発されたサービスでのフロート変換
procedure TServerContainerSGV40.tapServicioResourceReceived(const Sender: TObject; const AResource: TRemoteResource);
var
identifier, hint, cadena: string;
ID_PRODUCTO: Integer;
codigo, descripcion: string;
ppp, stock, precio_venta: Real;
begin
if AResource.ResType = TRemoteResourceType.Data then
begin
identifier := Copy(AResource.Hint, 1, Pos('}', AResource.Hint));
hint := AResource.Hint.Replace(identifier, '');
cadena := AResource.Value.AsString;
if cadena = 'Get IP' then EnviarCadena(AResource.Hint, 'Envío IP', GetLocalIP);
if hint = 'Datos Producto' then
begin
if cadena.Length > 0 then
begin
with usGetDatosProducto do
begin
ParamByName('CODIGO').AsString := cadena;
Execute;
ID_PRODUCTO := ParamByName('ID_PRODUCTO').AsInteger;
codigo := ParamByName('CODIGO').AsString;
descripcion := ParamByName('DESCRIPCION').AsString;
ppp := ParamByName('PPP').AsFloat;
stock := ParamByName('STOCK').AsFloat;
precio_venta := ParamByName('PRECIO_VENTA').AsFloat;
end;
if ID_PRODUCTO > 0 then
begin
cadena := Format('%s;%s;;PRECIO:'#9'%s;P.P.P.:'#9'%s;STOCK:'#9'%s', [
codigo, descripcion, FormatFloat('$ ,0', precio_venta),
FormatFloat('$ ,0.##', ppp), FormatFloat(',0.###', stock)
]);
EnviarCadena(identifier, 'Envío Datos Producto', cadena);
end
else
EnviarCadena(identifier, 'Mostrar Mensaje', 'Código de Producto No Existe');
end;
end;
end;
end;
タグスパムを停止してください。あなたの質問は、テザリング、データスナップ、またはサービスとはまったく関係ありません。これは、浮動小数点数をローカライズされた通貨文字列にフォーマットすることに関するものです。あなたがサービスでそうしているという事実は、サービスプログラミングに関する質問をしません。テザリングとDataSnapの両方が、テザリングやDataSnapプログラミングに関する質問をしないと言及しています。タグはここでは関連性と意味を持ちます。あなたの質問に実際に当てはまるものだけを適用してください。ありがとう。 –
私はこのフォーマットが欲しいですが、私はそれを強制したくありません。エル、何?あなたは特定のフォーマットをしたいのですか?とにかく、書式設定通貨は、ユーザーに表示されるべきものです。舞台裏のデータ転送のためではありません。データを転送するときに通貨をフォーマットしないでください。ディスプレイ上でのみフォーマットしてください。 –