1
我正試圖將免費Pascal中的一個小程序放入JSON格式的Fixer.io當前匯率中,並使用它們進行簡單的貨幣換算。 我已經得到以下,它將英鎊兌換成波蘭語złoty的匯率並將其打印到屏幕上。將JSON數據的值傳遞給Free Pascal變量
{$mode objfpc}{$H+}
uses fphttpclient, fpjson, jsonparser;
Var
S : String;
J: TJSONData;
initialAmount, endAmount, rate: real;
begin
With TFPHttpClient.Create(Nil) do
try
S:=Get('http://api.fixer.io/latest?base=GBP');
finally
Free;
end;
J:= GetJSON(S);
writeln ('Current exchange rate of GBP to Polish złoty: ',J.FindPath('rates.PLN').AsFloat:2:2);
end.
我正在努力做的是將該匯率的價值傳遞給我可用於貨幣轉換的變量。
沿着這個東西線:
rate := J.FindPath('rates.PLN').AsFloat:2:2;
writeln;
write ('Enter initial amount in GBP £');
readln (initialAmount);
endAmount := initialAmount * rate;
writeln (endAmount);
有什麼建議?
嗯,我修改了程序的最後一行來顯示結束金額而不是速率。 ':2:2'將數字顯示爲2位小數,因爲它在'WriteLn'語句中。程序的這部分編譯和運行沒有任何問題。 問題是代碼的第二部分,速率:= J.FindPath('rates.PLN')。AsFloat:2:2;'不是一種將變量傳遞給變量'rate'的有效方法。 – 2015-04-01 10:14:15
我只是很密集...你指的是'rate:= J.FindPath('rates.PLN')這行':2:2'。AsFloat:2:2;'take that出來解決問題謝謝你。 – 2015-04-02 08:43:20