我想制作一个微型计算器,如果你写例如2/3并且你有 0.6666667。我使用 DynamicExpresso.Core 库,但我需要写2f/3f才能获得 0.6666667(如果我写2/3,我会得到 0)。我想我应该使用 somethink likeforCounting = Regex.Replace(forCounting, Regex.Match(forCounting, @"\d+").Value, Regex.Match(forCounting, @"\d+").Value + "f");
但它只在第一个数字之后添加 f 。你有什么想法?
问问题
94 次
3 回答
1
采用
using System;
using System.Text.RegularExpressions;
public class Example
{
public static void Main()
{
string pattern = @"\d+(?:\.\d+)?";
string substitution = "$0f";
string input = "Text: 2/3, 1.9";
string result = Regex.Replace(input, pattern, substitution);
Console.WriteLine(result);
}
}
请参阅C# 证明。
结果:Text: 2f/3f, 1.9f
于 2020-11-29T22:27:35.197 回答
0
从 DynamicExpresso 2.6.0开始,可以设置默认数字类型。
例如,您可以要求它将所有数字视为双精度数,并得到您期望的结果:
var target = new Interpreter();
target.SetDefaultNumberType(DefaultNumberType.Double);
var dbl = target.Eval<double>("2/3");
Console.WriteLine(dbl); // 0.6666666666666666
于 2021-08-28T10:51:29.520 回答
-1
好代码:
forCounting= Regex.Replace(forCounting, @"([0-9.]+)", @"$0f");
于 2020-12-01T08:56:03.337 回答