首页 > 编程语言 >C# 验证decimal 小数点以及前几位后几位

C# 验证decimal 小数点以及前几位后几位

时间:2023-10-20 17:44:42浏览次数:33  
标签:index return C# decimal 几位 int true public

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;
}
}

 

标签:index,return,C#,decimal,几位,int,true,public
From: https://www.cnblogs.com/ztf20/p/17777626.html

相关文章

  • VsCode 配置-新手
    保存时自动保存代码保存时自动删除无关引用打开settings.json后加入"editor.codeActionsOnSave":{"source.organizeImports":true},保存时自动删除缓存按下ctrl+shift+p,出现以下视图,并输入CleanJavalanguageserverworkspace此时会有弹出,然后选择Reloadan......
  • tcp/ip协议和opc协议对比详解
    TCP/IP协议和OPC协议是两种重要的网络协议,它们在不同的网络层级上运行,并为数据传输和通信提供了不同的功能。TCP/IP协议(TransmissionControlProtocol/InternetProtocol,传输控制协议/互联网协议)是互联网通信的基础协议,它定义了互联网中数据传输的基本规则和标准。TCP/IP协议包括......
  • 如何使用 GoGoCode 一键 Vue2 转换 Vue3
    前言从今年年初开始,项目开始升级优化,将之前的Vue2旧版本整体升级到Vue3版本。在重写了几个Vue文件后,我发现做的都是一些机械性的工作,效率低且重复性大。于是就试着搜索了一下有没有什么能够批量转换代码格式的工具,发现了阿里的这个基于AST的JavaScript/Typescript/HTML......
  • 3、Collection、Map、Stream流
    Collection、Map、Stream流一、集合的概述和分类主要分为两个系列:Collection和MapCollection代表单列集合,每个元素(数据)只包含一个值Map代表双列集合,每个元素包含两个值(键值对)1.1CollectionCollection的分类Collection集合下包含两个系列的集合List系列集合:添加的元......
  • html5+css-06
    HTML5(最常用)新增标签语义化header:头部nav:导航article:内容section:定义文档某个区域aside:侧边栏footer:尾部主要针对搜索引擎可多次使用在IE9中需要转化为块级标签视频audio:音频(.mp3)video:视频(尽量使用.mp4)新的表单emailurlnumberrangeDatepicker......
  • Pixie: A System for Recommending 3+ Billion Items to 200+ Million Users in Real-
    目录概符号说明PixieEksombatchaiC.,JindalP.,LiuJ.Z.,LiuY.,SharmaR.,SugnetC.,UlrichM.andLeskovecJ.Pixie:Asystemforrecommending3+billionitemsto200+millionusersinreal-time.WWW,2018.概Pinterest的一个大规模处理图的方案(偏推理......
  • Codeforces Round 865 (Div. 2) B. Grid Reconstruction
    给一个\(2\timesn\)的网格,且\(n\)是偶数。你需要将\(1\sim2\timesn\)填入这个网格。一条路径是从\((1,1)\)开始,每次只能向右或向下,到\((2,n)\)结束时,所经过的位置。按经过点的顺序标号,一两条路径的代价是\(cost=a_1-a_2+a_3-a_4+\cdots=\sum_{i=1......
  • Mock 测试快速上手 :什么是 Mock 测试?
    Mock测试什么是Mock?Mock的意思就是,当你很难拿到源数据时,你可以使用某些手段,去获取到跟源数据相似的假数据,拿着这些假数据,前端可以先行开发,而不需要等待后端给了数据后再开发。Mock的重要性在现在前后端分离的时代,前后端如何效率更高地去完成协同开发,是一个大问题。举个例子:后......
  • Oracle 查询排名第几到第几行的数据(rownumber效率最高)
    查询排名第5到第10行的数据  实现效率最高,如果是在前端页面用循环选择,效率是很慢的。ROWNUM是Oracle加在查询数据集的伪字段,记录的是每一行的行号。--第三步查询需要的几行数据SELECTA.NAME,A.FW_TIMESTAMPFROM(--第二步加排序编号ROWNUMSELECTA.NAME,A.FW_TIMES......
  • Flutter开发--新建项目中4种Project Type区别
     Projectflutter项目,里面有iOS、Android目录Moduleflutter模块,原生iOS项目,想加flutter功能开发Pluginflutter插件,原生flutter项目,想加iOS功能开发Package纯flutter项目,没有iOS、Android目录 https://www.jianshu.com/p/01972bf7cb97......