如何接受"$ 1,250.00"之类的字符串并将其转换为C#中的小数?
我只是做一个替换("$","")和(",","")或者我应该采用不同的方式来处理这种输入吗?
有些值返回2.0,但我需要它为2.00,因为这是显示在网页上的金钱值.
我在做:
Math.Round(value, 2);
Run Code Online (Sandbox Code Playgroud)
有没有办法强制它在小数点后的2个数字?
我有一个存储过程用于从csv插入数据.数据本身是各种类型,一些测试,一些日期和一些货币领域的混合.我需要保证这些数据得到保存,即使它的格式错误,所以,我将它们全部保存到varchars中.稍后,一旦数据被验证并检查完毕,它将被移动到具有适当数据类型的另一个表.
当我插入第一个表时,我想做一个检查,如果需要注意,在行上设置一个标志(位列).例如,如果钱号中应该包含字母,我需要标记该行并在我得到的额外errormsg字段中添加列名.然后,我可以使用该标志来查找并突出显示界面中用户需要编辑的字段.
日期参数似乎很简单,我可以IF ISDATE(@mydate) = '0'用来测试该参数是否可以从varchar转换为datetime.但是,我似乎无法找到ISMONEY()或任何远程等效的东西.
如果varchar的内容可以合法地转换为金钱,有谁知道要测试什么?
编辑: 我还没有测试过,但你怎么看待这样的功能?:
CREATE FUNCTION CheckIsMoney
(
@chkCol varchar(512)
)
RETURNS bit
AS
BEGIN
-- Declare the return variable here
DECLARE @retVal bit
SET @chkCol = REPLACE(@chkCol, '$', '');
SET @chkCol = REPLACE(@chkCol, ',', '');
IF (ISNUMERIC(@chkCOl + 'e0') = '1')
SET @retVal = '1'
ELSE
SET @retVal = '0'
RETURN @retVal
END
GO
Run Code Online (Sandbox Code Playgroud)
更新
刚刚完成上面的代码测试,它的工作原理!
在我的应用程序中,我正在处理大数字(货币),我正在使用nsnumberformatter格式化它们.目前,根据locale设置小数位数.由于涉及大数字,我不想显示小数位任何货币.如何在nsnumberformatter货币样式中将小数位设置为零?
使用的代码
NSDecimalNumber *someAmount = [NSDecimalNumber decimalNumberWithString:unformattedString];
NSNumberFormatter *currencyFormatter = [[[NSNumberFormatter alloc] init] autorelease];
[currencyFormatter setNumberStyle:NSNumberFormatterCurrencyStyle];
[currencyFormatter setLocale:locale];
NSString *str=[NSString stringWithFormat:@"%.0f",someAmount];
//NSString *str=[currencyFormatter stringFromNumber:someAmount];
Run Code Online (Sandbox Code Playgroud) 我正在尝试做一些相当简单的事情,但事实证明这很棘手.
我希望我的产品页面显示英镑和欧元的价格(但是他们只能使用商店视图中当前设置的任何货币购买).
如果我能找到如何获得货币汇率,我可以自己计算显示正确的价格,但到目前为止我没有运气.这就是我尝试过的:
$allowedCurrencies = Mage::getModel('directory/currency')->getConfigAllowCurrencies();
$euro = Mage::getModel('directory/currency')->getCurrencyRates('EUR', array_values($allowedCurrencies));
Run Code Online (Sandbox Code Playgroud)
显示"1.00000",这不是费率(应为1.1948)
我已经完成了所需的所有配置,并使用WebserviceX导入了费率.
任何帮助将非常感激.
我试图总结以下数字。
var number1= 12,000.00 ; var number2= 12,000.00;
Run Code Online (Sandbox Code Playgroud)
我已经尝试过了,alert(number1+number2);?但是它不返回任何数据。
您能帮我解决这个问题吗?
谢谢
在应用程序购买中,我希望本地货币符号显然适合用户本地货币.使用NSLocaleCurrencySymbol作为检测用户所在位置的主要来源是否安全.这是我的代码的一部分:
NSLocale *theLocale = [NSLocale currentLocale];
NSString *symbol = [theLocale objectForKey:NSLocaleCurrencySymbol];
NSString *cost = [NSString stringWithFormat:@"%@",product.price];
Run Code Online (Sandbox Code Playgroud)
默认情况下,当用户购买iOS设备时,在每台设备的国际设置中自动完成正确的区域格式?
我正在尝试解析德国货币数字.但是下面的测试有什么问题?
NumberFormat.getCurrencyInstance(Locale.GERMANY).parse("100,00");
Run Code Online (Sandbox Code Playgroud)
结果:
java.text.ParseException: Unparseable number: "100,00"
at java.text.NumberFormat.parse(NumberFormat.java:350)
Run Code Online (Sandbox Code Playgroud) 我正在开发一个电子商务应用程序,其中一个功能是用户可以选择他们的货币.现在,我注意到当有人选择俄罗斯卢布时,该符号在iOS上的Chrome(版本7.1)中仅显示为正方形.这是为什么?
它应该表明:
?
Run Code Online (Sandbox Code Playgroud)
但它显示了这个:
?
Run Code Online (Sandbox Code Playgroud)
请注意,我使用HTML代码来显示它:
₽
Run Code Online (Sandbox Code Playgroud)
在桌面版(iMac)上它显示正常,我想在其他操作系统上也是如此.
任何人都知道为什么它没有在iOS上显示?
阅读NSNumberFormatter苹果文件后,在这里我想货币转换为每尤伯杯API文档.两个文档都声明它们使用ISO格式标准,但是在我的代码中我发现情况并非如此.ISO 4217标准在此处 和ISO 本身
public static func convertStringCurrencyToNumber(strCurrency:String, locale:String)->Double {
var formatter = NSNumberFormatter()
formatter.locale = NSLocale(localeIdentifier: "\(locale)")
formatter.numberStyle = NSNumberFormatterStyle.CurrencyStyle
println(formatter.numberFromString(strCurrency))
if let converted:Double = formatter.numberFromString(strCurrency)?.doubleValue {
return converted
}else{
return 0.0
}
}
Run Code Online (Sandbox Code Playgroud)
我的单元测试这个功能
func testCurrencyConversion() {
let fiveBucks = UberReceipt.convertStringCurrencyToNumber("$5.00", locale: "en_US")
println(fiveBucks)
let tenBucks = UberReceipt.converStringCurrencyToNumber("$10.00", locale:"USD")
println(tenBucks)
}
Run Code Online (Sandbox Code Playgroud)
控制台日志:可选(5.0)nil 5.0 0.0
如果我使用"en_US"结果是预期的,那将是5.0,但是如果我使用Uber返回的语言环境"USD",则返回值为0.0.在打印/检查格式化程序转换货币时发生的情况时,我发现它返回nil.
我发现文档误导了它对formatter.locale = NSLocale(...)的说法.根据文档"语言环境确定许多格式化程序属性的默认值,例如ISO国家/地区和语言代码,货币代码 ...."
我认为设置语言环境也应该设置货币代码.这是不正确的?如果我使用与ISO代码相关的非标准"en_US"代码(应该是Apple文档使用的代码),为什么我的代码会工作?"USD"