我写了一个脚本,每小时(当我的产品默认使用的货币)与每小时相比,获得paypals当前费率.
用户可以在其设置中设置其货币并存储在用户表中.
我最初的想法是将所有货币汇率存储在数据库中,然后在用户登录时将货币代码和汇率存储在会话中.然后在每个价格附近,我有一个函数,它将价格乘以用户价格,并在最后附加货币代码.
我唯一担心的是会话变量可能存在一段时间,并可能使价格完全错误.
我应该只存储他们的货币代码并将费率存储在内存表或文件系统中以便快速访问,并让价格转换功能访问它,而不是将费率存储在会话中吗?因此价格与费率一样最新.
这通常是如何实现的?
我正在编写一个小工具来从字符串中提取一堆值(通常是推文).
字符串可以包含单词和数字,以及以货币符号(£,$,€等)为前缀的数量和一些主题标签(#foo #bar).我在appEngine上运行并使用tweepy来引入推文.
我必须找到的当前代码如下:
tagex = re.compile(r'#.*')
curex = re.compile(ur'[£].*')
for x in api.user_timeline(since_id = t.lastimport):
tags = re.findall(tagex, x.text)
amount = re.findall(curex, x.text)[0]
logging.info("Text: " + x.text)
logging.info("Tags: " + str(tags))
logging.info("Amount: " + amount)
Run Code Online (Sandbox Code Playgroud)
其中x.text是例如"Taxi London£6.50 #projectfoo #clientmeeting"
tagex发现主题标签很好,但我无法获得curex来提取当前的金额:金额:£6.50 #projectfoo #clientmeeting.
我还需要将货币符号分开,以便将金额作为浮点数,但这应该在以后非常简单.
我想通过国家代码获取货币名称.我使用以下代码获取国家/地区代码:
TelephonyManager manager = (TelephonyManager)getSystemService(TELEPHONY_SERVICE);
String countrycode=manager.getNetworkCountryIso();
System.out.println("---->"+countrycode+"<----");
Run Code Online (Sandbox Code Playgroud)
现在我希望通过使用此国家/地区代码来获取货币.我怎样才能做到这一点?
我在ColdFusion购物车里面做了一些javascript工作,我需要能够在js中格式化一些数字,这些数字将模仿CF中的LScurrencyFormat().
目前我们正在使用格式化字符串的第一个(左,1)字符,但这对于数字之后的日元或欧元等货币不起作用,更不用说任何多个字符货币符号.
基于当前的CF语言环境,我需要找到的是
货币符号
十进制分隔符(,或.)
领先或尾随(数字之前或之后)
从那里我可以运行我自己的js格式,使格式化的数字在页面上按预期出现.在PHP我们可以使用localeconv()来获取这些值...我怎么能在CF中找到它们?
我想允许用户在整个帐户中更改货币单位.
显而易见的方法是将unit参数传递给number_to_currency,但是number_to_currency在整个应用程序中使用了数百次,这似乎有点重复.
那么是否有一些方法可以number_to_currency根据每个用户的数据库中存储的设置更改所有实例的使用单位?
该方法getAvailableCurrencies仅在API 19(Kitkat)之后才可用.有关如何Currency.getAvailableCurrencies在以前的API中实现相同结果的任何想法?
(我正致力于API 15)
我正在使用这个旧的SQL Server数据库,它以MONEY数据类型存储数值.多年来一直很好,现在对于某些货币汇率转换,我们需要最多10位小数.我们正在探索可能从MONEY数据类型转换为DECIMAL.
我看到一个MONEY字段相当于一个字段DECIMAL(19, 4).使用更宽的数据DECIMAL(25, 10)来容纳10位小数是否安全?
如果我们想要确保为将来的请求提供更多空间,那么将不再适合构建在数据库上的Classic ASP应用程序(使用Double数据类型)的限制是什么?
谢谢
作为示例,我在数据库中有值a,b和c.现在我需要将这些值格式化为a1,b1和c1.
a) 2000000000
a1) 20,000,000.00
b) 300000
b1) 3,000.00
c) 30000
c1) 300.00
Run Code Online (Sandbox Code Playgroud)
我试过这个:
'{:20,.2f}'.format(30000) # 30,000.00 and i need 300.00
'{:20,.2f}'.format(300000) # 300,000.00 and i need 3,000.00
...
Run Code Online (Sandbox Code Playgroud)
所以,我正在尝试的是没有按预期工作.任何人都知道如何实现我正在寻找的格式?
我一直听说你应该使用钱类,因为浮点不准确.然而,令人惊讶的是,很难找到浮点不准确实际导致错误结果的任何示例.
我选择的编程语言是Python.为了测试结果是否与预期不同,我使用:
expected = '1.23'
result = '{:0.2f}'.format(result)
assert expected == result
Run Code Online (Sandbox Code Playgroud)
因此,虽然以下是浮点不准确的一个很好的例子,但对于大多数用例来说,它不是需要使用有理数字类(如Pythons分数)的货币类的例子:
a = 10.0
b = 1.2
assert a + b - a == b
Run Code Online (Sandbox Code Playgroud)
我能想到的最好的事情是
result = (a + b - a) * 10**14 - b * 10**14
expected = 0
Run Code Online (Sandbox Code Playgroud)
但是与货币相关的东西相乘10**14似乎真的已经弥补了.
现在我想知道是否有任何现实的例子表明需要一个金钱类或者如果通过简单地四舍五入到两位来"捕获"所有东西.
currency ×10
android ×2
java ×2
python ×2
asp-classic ×1
coldfusion ×1
format ×1
mysql ×1
numbers ×1
paypal ×1
php ×1
python-2.7 ×1
regex ×1
sql ×1
sql-server ×1
sqldatatypes ×1