gpt4 book ai didi

string - Dart:根据用户输入的字符串进行计算,包括数学运算符

转载 作者:行者123 更新时间:2023-12-03 03:10:22 25 4
gpt4 key购买 nike

我是 Dart 和 Flutter 的新手。有没有一种简单的方法可以将用户输入计算为像 '3+5/8 这样的字符串?当然结果应该是double类型的。感谢您的回答!

最佳答案

如果你正在寻找简单的数学字符串,你可以在一个名为

的包的帮助下计算它们

首先安装这个包。将其添加到您的项目中,然后实现此代码。

import 'dart:math';
import 'package:petitparser/petitparser.dart';

Parser buildParser() {
final builder = ExpressionBuilder();
builder.group()
..primitive((pattern('+-').optional() &
digit().plus() &
(char('.') & digit().plus()).optional() &
(pattern('eE') & pattern('+-').optional() & digit().plus())
.optional())
.flatten('number expected')
.trim()
.map(num.tryParse))
..wrapper(
char('(').trim(), char(')').trim(), (left, value, right) => value);
builder.group()..prefix(char('-').trim(), (op, a) => -a);
builder.group()..right(char('^').trim(), (a, op, b) => pow(a, b));
builder.group()
..left(char('*').trim(), (a, op, b) => a * b)
..left(char('/').trim(), (a, op, b) => a / b);
builder.group()
..left(char('+').trim(), (a, op, b) => a + b)
..left(char('-').trim(), (a, op, b) => a - b);
return builder.build().end();
}

double calcString(String text) {
final parser = buildParser();
final input = text;
final result = parser.parse(input);
if (result.isSuccess)
return result.value.toDouble();
else
return double.parse(text);
}

现在只需调用此函数 calcString 即可获得所需的答案。 记住它只会在给定字符串有效时返回计算值,否则会抛出错误。

关于string - Dart:根据用户输入的字符串进行计算,包括数学运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54545102/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com