查找小数点是否大于四位

本文关键字:四位 小数点 是否 大于 查找 | 更新日期: 2023-09-27 18:20:19

我正在尝试验证C#中的一个表单,需要确定字符串中的小数位数是否大于4位。

目前,VB中过去的验证是:

Len(Mid(pAnnualFee, (InstrRev(pAnnualFee, ".") + 1), Len(pAnnualFee))) > 4 

如何以简洁的方式将其转换为c#,甚至是现在使用c#的InstrRev和mid的方式?

查找小数点是否大于四位

您可以这样尝试:

decimal d = decimal.Parse(pReturn);
if (Decimal.Round(d, 4) != d)

我可能会使用@fix_likes_coding的答案中的解决方案。

然而,虽然Decimal结构没有获取小数位数的方法,但您可以调用Decimal.GetBits来提取二进制表示,然后使用整数值和小数位数来计算小数位数。

这可能比格式化为字符串更快,尽管你必须处理大量的小数才能注意到差异。

试试这样的东西(例如):

decimal argument = 123.456m;
int count = BitConverter.GetBytes(decimal.GetBits(argument)[3])[2];

然后只是:

if(count>4)
{
//your code
}