• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

iphone - 实时格式化美元金额

[复制链接]
菜鸟教程小白 发表于 2022-12-12 08:52:33 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我正在开发一个要求用户输入美元金额的 iOS 应用。它需要允许他们输入最大值为 $9999.99 的美元和美分

我希望它像这样工作: 有一个文本字段显示:“$ 0.00” 输入 $5.25 输入将随着每次按键而改变。 所以它看起来像这样: '5'被按下,显示0.05 '2' 被按下,显示0.52 '5'被按下,显示5.25

我尝试了多种不同的方式来完成这项工作,但都存在问题。 使用 NSNumberformatter 无法正常工作。如果用户按下退格键,使用链接列表或数组将不起作用,我真的不想实现堆栈,因为我担心它会太耗时。请告知我应该如何解决这个问题。谢谢



Best Answer-推荐答案


这只是一个指示性示例,说明如何执行此操作。您应该研究此代码并根据您的情况重新调整它。试试看:

@autoreleasepool
{
    // Here I create the formatter and I set the format. You do this faster with setFormat: .
    NSNumberFormatter* formatter=[[NSNumberFormatter alloc]init];
    formatter.numberStyle= NSNumberFormatterCurrencyStyle;
    formatter.maximumIntegerDigits=6;
    formatter.maximumFractionDigits=2;
    formatter.currencySymbol= @"$";
    formatter.currencyDecimalSeparator= @".";
    formatter.currencyGroupingSeparator= @",";
    formatter.positivePrefix=@"";

    NSArray* numbers= @[ @1 ,@2 ,@3 ,@4, @5, @6, @7, @8  ];
    // These are the inserted numbers, you should change the code in a way that
    // every number is taken in input from the text field.
    float number=0.0f;
    for(NSUInteger i=0;i<8;i++)
    {
        // It just simulates what happens if the user types the numbers in the array.
        number= [numbers[i] floatValue] * 1.0e-2 + number*10;
        NSLog(@"%@",[formatter stringFromNumber: @(number)]);
    }
}

关于iphone - 实时格式化美元金额,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14966364/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap