C# 验证decimal 小数点以及前几位后几位
public class CustomRadixPointAttribute : ValidationAttribute
{
private readonly int _index;
public CustomRadixPointAttribute(int index)
{
_index = index;
}
///
public override bool IsValid(object? value)
{
if (value == null)
{
return true;
}
decimal d = Convert.ToDecimal(value);
decimal d2 = Math.Floor(d * Convert.ToDecimal(Math.Pow(10.0, _index))) / Convert.ToDecimal(Math.Pow(10.0, _index));
if (d == d2)
return true;
return false;
}
}
//以上方法只验证小数点保留几位
/// <summary>
/// 判断小数位数,比如前十后四
/// </summary>
public class CustomNumberDigitsAttribute : ValidationAttribute
{
private readonly int _beforePoint;
private readonly int _afterPoint;
public CustomNumberDigitsAttribute(int beforePoint, int afterPoint) : base()
{
_beforePoint = beforePoint;
_afterPoint = afterPoint;
}
public override bool IsValid(object value)
{
string strValue = value?.ToString();
if (string.IsNullOrWhiteSpace(strValue))
return true;
decimal number = Convert.ToDecimal(strValue);
var strSplit = number.ToString().Split(".");
if (strSplit.Count() == 2)
{
if (strSplit[0].Length <= _beforePoint && strSplit[1].Length <= _afterPoint)
{
return true;
}
}
else
{
if (strSplit[0].Length <= _beforePoint)
{
return true;
}
}
return false;
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人