/// <summary>
/// 实现数据的四舍五入法
/// </summary>
/// <param name="v">要进行处理的数据</param>
/// <param name="x">保留的小数位数</param>
/// <returns>四舍五入后的结果</returns>
public decimal Round(decimal v, int x)
{
var isNegative = false;
//如果是负数
if (v < )
{
isNegative = true;
v = -v;
} var IValue = ;
for (var i = ; i <= x; i++)
{
IValue = IValue * ;
} var Int = Math.Round(v * IValue, );
v = Int / IValue; if (isNegative)
{
v = -v;
} return v;
} /// <summary>
/// 实现数据的向上取整
/// </summary>
/// <param name="v">要进行处理的数据</param>
/// <param name="x">保留的小数位数</param>
/// <returns>向上取整后的结果</returns>
public decimal Ceiling(decimal v, int x)
{
var isNegative = false;
//如果是负数
if (v < )
{
isNegative = true;
v = -v;
} var IValue = ;
for (var i = ; i <= x; i++)
{
IValue = IValue * ;
} var Int = Math.Ceiling(v * IValue);
v = Int / IValue; if (isNegative)
{
v = -v;
} return v;
} /// <summary>
/// 实现数据的向下取整
/// </summary>
/// <param name="v">要进行处理的数据</param>
/// <param name="x">保留的小数位数</param>
/// <returns>向下取整后的结果</returns>
public decimal Floor(decimal v, int x)
{
var isNegative = false;
//如果是负数
if (v < )
{
isNegative = true;
v = -v;
} var IValue = ;
for (var i = ; i <= x; i++)
{
IValue = IValue * ;
} var Int = Math.Floor(v * IValue);
v = Int / IValue; if (isNegative)
{
v = -v;
} return v;
} /// <summary>
/// 实现见角进元
/// </summary>
/// <param name="v">要进行处理的数据</param>
/// <param name="x">保留的小数位数</param>
/// <returns>见角进元后的结果</returns>
public decimal SeeDownUp(decimal v, int x)
{
var isNegative = false;
//如果是负数
if (v < )
{
isNegative = true;
v = -v;
} var IValue = ;
for (var i = ; i <= x; i++)
{
IValue = IValue * ;
} var stirngpanduan = Math.Floor(v * IValue * ).ToString();
if (stirngpanduan.Substring(stirngpanduan.Length - ) == "")
{
var Int = Math.Floor(v * IValue);
v = Int / IValue;
}
else
{
var Int = Math.Ceiling(v * IValue);
v = Int / IValue;
} if (isNegative)
{
v = -v;
} return v;
} /// <summary>
/// 实现数据的四舍五入,向上取整,向下取整
/// </summary>
/// <param name="v">要进行处理的数据</param>
/// <param name="x">保留的小数位数</param>
/// <param name="type">1四舍五入,2向上取整,3向下取整</param>
/// <returns>decimal</returns>
public decimal DecimalProcessing(decimal v, int x, string type)
{
decimal result = ;
switch (type)
{
case "":
result = Round(v, x);
break;
case "":
result = Ceiling(v, x);
break;
case "":
result = Floor(v, x);
break;
case "":
result = SeeDownUp(v, x);
break;
default:
result = Round(v, x);
break;
} return result;
}

c# 小数四舍五入,向上取整,向下取整,见角进元保留多个小数位数的更多相关文章

  1. c# 四舍五入、上取整、下取整

    在处理一些数据时,我们希望能用“四舍五入”法实现,但是C#采用的是“四舍六入五成双”的方法,如下面的例子,就是用“四舍六入五成双”得到的结果: double d1 = Math.Round(1.25, ...

  2. C#采用的是“四舍六入五成双”、上取整、下取整

    c# 四舍五入.上取整.下取整 Posted on 2010-07-28 12:54 碧水寒潭 阅读(57826) 评论(4) 编辑 收藏 在处理一些数据时,我们希望能用“四舍五入”法实现,但是C#采 ...

  3. 怎样对小数进行向上取整 / 向下取整 / 四舍五入 / 保留n位小数 / 生成随机数

    1. 向上取整使用: Math.ceil() Math.ceil(0.1); Math.ceil(1.9); 2. 向下取整使用: Math.floor() Math.floor(0.1); Math ...

  4. SQLSERVER 数值 四舍五入取整 向上取整 向下取整

    [四舍五入取整截取] select round(54.56,0) [向下取整截取] SELECT floor(54.56) [向上取整截取]  SELECT   ceiling(13.15)

  5. python中的向上取整向下取整以及四舍五入的方法

    import math #向上取整print "math.ceil---"print "math.ceil(2.3) => ", math.ceil(2. ...

  6. Python向上取整,向下取整以及四舍五入函数

    import math f = 11.2 print math.ceil(f) #向上取整 print math.floor(f) #向下取整 print round(f) #四舍五入 #这三个函数的 ...

  7. c# 三种取整方法 向上取整 向下取整 四舍五入

    Math.Round:四舍六入五取整 Math.Ceiling:向上取整,只要有小数都加1 Math.Floor:向下取整,总是舍去小数

  8. sql 向上取整 向下取整 四舍五入的实例;

    SELECT CEILING(23.5/4)'向上取整' ---6 :SELECT FLOOR(23.5/4)'向下取整' ---5 :SELECT ROUND(23.5/4,1)'四舍五入' --5 ...

  9. c++ 取整:四舍五入 向上取整 向下取整

    对于数据的取整是经常需要考虑的 现在总结如下 #include<iostream> #include<cmath> using namespace std; int main( ...

随机推荐

  1. 前端笔记之JavaScript(二)关于运算符&初识条件判断语句

    运算符 数学运算符的正统,number和number的数学运算,结果是number.出于面试的考虑,有一些奇奇怪怪的数学运算: 数学运算中:只有纯字符串.布尔值.null能够进行隐式转换. //隐式转 ...

  2. Chapter 5 Blood Type——12

    I blinked, my mind going blank. Holy crow, how did he do that? 我眨着眼睛,心里一片空白.天哪,他是怎么做到的? "Er, wh ...

  3. HBase学习-HBase原理

    1.系统架构 1.1 图解   从HBase的架构图上可以看出,HBase中的组件包括Client.Zookeeper.HMaster.HRegionServer.HRegion.Store.MemS ...

  4. navicat连接mysql出现Client does not support authentication protocol requested by server解决方案

    USE mysql; '; FLUSH PRIVILEGES; root是用户名 localhost是ip地址127.0.0.1都是特指本机,%表示任何IP都可访问 mysql_native_pass ...

  5. Redis Windows 64位下安装Redis详细教程

    Windows Redis 下载地址:点击打开链接https://github.com/MicrosoftArchive/redis/releases 点击打开链接 文件介绍 redis-benchm ...

  6. mysqladmin实用工具

    mysqladmin命令行实用工具是命令行工具套件中的重量级工具.这个工具可以执行很多选项和工具(被称为命令). 因为这个实用工具是从命令行启动运行的,它使得管理员可以编写一系列操作脚本,这比直接运行 ...

  7. eclipse 创建maven 项目 动态web工程完整示例 maven 整合springmvc整合mybatis

    接上一篇: eclipse 创建maven 项目 动态web工程完整示例 eclipse maven工程自动添加依赖设置 maven工程可以在线搜索依赖的jar包,还是非常方便的 但是有的时候可能还需 ...

  8. 基本 SQL 之增删改查(二)

    上一篇文章中,我们介绍了 SQL 中最基本的 DML 语法,包括 insert 的插入数据.update 的更新数据.delete 的删除数据以及基本的查询语法,但大多比较简单不能解决我们日常项目中复 ...

  9. ROS笔记 Topics

    http://wiki.ros.org/ROS/Tutorials/UnderstandingTopics rostopic rqt_graph rosmsg rqt_graph 一个用于查看topi ...

  10. .Net Excel 导出图表Demo(柱状图,多标签页)

    1 使用插件名称Epplus,多个Sheet页数据应用,Demo为柱状图(Epplus支持多种图表) 2 Epplus 的安装和引用 新建一个工程文件或控制台应用程序 打开 Vs2017 Tools  ...