汇率计算器的代码

"""代码来自Rapid GUI with PyQt4,时间变了,很多东西的变化,调试好累"""
__author__ = 'dd'
import sys
import urllib.request  # 注意python3.3 的urllib格式变化。
from PyQt4.QtCore import *
from PyQt4.QtGui import *




class Form(QDialog):
def __init__(self, parent=None):
super(Form, self).__init__(parent)
date = self.getdata()
rates = sorted(self.rates.keys())


dateLabel = QLabel(date)
self.fromComboBox = QComboBox()
self.fromComboBox.addItems(rates)
self.fromSpinBox = QDoubleSpinBox()
self.fromSpinBox.setRange(0.01, 10000000.00)
self.fromSpinBox.setValue(1.00)
self.toComboBox = QComboBox()
self.toComboBox.addItems(rates)
self.toLabel = QLabel("1.00")


grid = QGridLayout()  # 网格式布局
grid.addWidget(dateLabel, 0, 0)  # 第一行,第一列
grid.addWidget(self.fromComboBox, 1, 0)  # 第二行,第一列
grid.addWidget(self.fromSpinBox, 1, 1)
grid.addWidget(self.toComboBox, 2, 0)
grid.addWidget(self.toLabel, 2, 1)
self.setLayout(grid)


self.connect(self.fromComboBox, SIGNAL("currentIndexChanged(int)"), self.updateUi)
self.connect(self.toComboBox, SIGNAL("currentIndexChanged(int)"), self.updateUi)
self.connect(self.fromSpinBox, SIGNAL("valueChanged(double)"), self.updateUi)
self.setWindowTitle("Currency")


def updateUi(self):
to = self.toComboBox.currentText()
from_ = self.fromComboBox.currentText()
amount = (self.rates[from_] / self.rates[to] * self.fromSpinBox.value())
self.toLabel.setText("%0.2f" % amount)


def getdata(self):
self.rates = {}
try:
date = "Unknown"
fh = open("./day.csv", 'r')  # 国外数据不易获得,而且网络资源也改名了,下载为本地文件
# fh = urllib.request.urlopen("http://www.bankofcanaca.ca""/stats/assets/csv/fx-seven-day.csv")
# print(fh.read())
for line in fh:
if not line or line.startswith(("#", "Closing ")):  # 去掉空行和注释行。
continue
fields = line.split(",")
if line.startswith("Date"):
date = fields[-1]
# print(date)
else:
try:
value = float(fields[-1])  # 最后一列为最新数字
self.rates[fields[0]] = value  #第一列是国家名,建立以国名的字典
except ValueError:
pass
return "Exchange Rates Date: " + date
except Exception as e:  # python3.3 错误处理,加了as
return "Failed to download:\n %s" % e
# except:print("Internet Error ")




app = QApplication(sys.argv)
form = Form()
form.show()
app.exec_()
以下是一个基于 PHP 和 JavaScript 的实时汇率计算器代码示例: PHP 汇率接口调用代码: ```php <?php // 定义 API URL $url = "https://api.exchangeratesapi.io/latest"; // 获取请求参数 $base = $_GET['base']; $target = $_GET['target']; $amount = $_GET['amount']; // 构造请求 URL $api_url = $url . "?base=" . $base . "&symbols=" . $target; // 发送请求并获取 API 响应 $response = file_get_contents($api_url); $data = json_decode($response, true); // 计算兑换金额 $result = $data['rates'][$target] * $amount; // 返回结果 echo number_format($result, 2); ?> ``` JavaScript 汇率计算器代码: ```html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>汇率计算器</title> </head> <body> <h1>汇率计算器</h1> <p>1 EUR = <span id="rate"></span> USD</p> <input type="number" id="amount" placeholder="请输入金额"> <select id="base"> <option value="EUR">欧元</option> <option value="USD">美元</option> <option value="JPY">日元</option> </select> <select id="target"> <option value="EUR">欧元</option> <option value="USD">美元</option> <option value="JPY">日元</option> </select> <button onclick="calculate()">计算</button> <p>兑换金额为: <span id="result"></span> </p> <script> function calculate() { // 获取用户输入 var base = document.getElementById("base").value; var target = document.getElementById("target").value; var amount = document.getElementById("amount").value; // 调用 PHP API 获取汇率 var api_url = "api.php?base=" + base + "&target=" + target + "&amount=" + amount; var xhr = new XMLHttpRequest(); xhr.open("GET", api_url, true); xhr.send(); xhr.onreadystatechange = function() { if (xhr.readyState == 4 && xhr.status == 200) { var rate = JSON.parse(xhr.responseText); document.getElementById("rate").innerHTML = rate; document.getElementById("result").innerHTML = rate * amount; } }; } </script> </body> </html> ``` 上面的代码演示了如何使用 PHP 调用外部汇率接口,并使用 JavaScript 实现实时汇率计算器。用户可以选择不同的货币,输入金额,然后点击“计算”按钮,程序就会自动调用汇率接口,计算出兑换金额并显示在页面上。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值