Flutter Textfield 捕获美元金额并申请费用

发布于 2025-01-10 02:52:48 字数 1168 浏览 0 评论 0原文

我们有一个 flutter 文本字段,用户可以输入一个 int 形式的金额,我们想要做的是 int 计算出减去费用的金额。可能是我无法弄清楚我做错了什么

TextFormField(
                          controller: _offerAmountController,
                          textInputAction: TextInputAction.next,
                          decoration: const InputDecoration(
                            hintText: '5-9999',
                            prefixIcon: Icon(Icons.attach_money_rounded),
                            // labelText: 'Your Offer',
                          ),
                          keyboardType: TextInputType.number,
                          onChanged: (offerAmount) {
                            
                            double sum = int.parse(offerAmount) * 0.1;
                            _offer = sum as int;
                          }),

Text(formatCurrency.format(_offer),
                                style: Theme.of(context)
                                    .textTheme
                                    .headlineSmall
                                    .copyWith(color: Colors.blue[700]))

final formatCurrency =
    NumberFormat.simpleCurrency(locale: 'en_AU', decimalDigits: 0);

We have a flutter text field whereby a user can enter an amount as an int, and what we want to do is that int calculated an amount less a fee. Probably is I cannot work out here what I am doing wrong

TextFormField(
                          controller: _offerAmountController,
                          textInputAction: TextInputAction.next,
                          decoration: const InputDecoration(
                            hintText: '5-9999',
                            prefixIcon: Icon(Icons.attach_money_rounded),
                            // labelText: 'Your Offer',
                          ),
                          keyboardType: TextInputType.number,
                          onChanged: (offerAmount) {
                            
                            double sum = int.parse(offerAmount) * 0.1;
                            _offer = sum as int;
                          }),

Text(formatCurrency.format(_offer),
                                style: Theme.of(context)
                                    .textTheme
                                    .headlineSmall
                                    .copyWith(color: Colors.blue[700]))

final formatCurrency =
    NumberFormat.simpleCurrency(locale: 'en_AU', decimalDigits: 0);

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

§普罗旺斯的薰衣草 2025-01-17 02:52:48

试试这个:

setState(() {
  _offer = sum.toInt();
});

Try this:

setState(() {
  _offer = sum.toInt();
});
生寂 2025-01-17 02:52:48

试试这个

setState(() {
  _offer = (sum).round();
});

或这个

setState(() {
  _offer = sum.toInt();
});

如果您需要以下代码,也可以尝试这个

double d = 50.5;

int i = d.toInt(); // i = 50
int i = d.round(); // i = 51
int i = d.ceil();  // i = 51
int i = d.floor(); // i = 50

Try this

setState(() {
  _offer = (sum).round();
});

or this

setState(() {
  _offer = sum.toInt();
});

You can also try this if you need below code

double d = 50.5;

int i = d.toInt(); // i = 50
int i = d.round(); // i = 51
int i = d.ceil();  // i = 51
int i = d.floor(); // i = 50
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文