c# 小数四舍五入,向上取整,向下取整,见角进元保留多个小数位数
/// <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# 小数四舍五入,向上取整,向下取整,见角进元保留多个小数位数的更多相关文章
- c# 四舍五入、上取整、下取整
在处理一些数据时,我们希望能用“四舍五入”法实现,但是C#采用的是“四舍六入五成双”的方法,如下面的例子,就是用“四舍六入五成双”得到的结果: double d1 = Math.Round(1.25, ...
- C#采用的是“四舍六入五成双”、上取整、下取整
c# 四舍五入.上取整.下取整 Posted on 2010-07-28 12:54 碧水寒潭 阅读(57826) 评论(4) 编辑 收藏 在处理一些数据时,我们希望能用“四舍五入”法实现,但是C#采 ...
- 怎样对小数进行向上取整 / 向下取整 / 四舍五入 / 保留n位小数 / 生成随机数
1. 向上取整使用: Math.ceil() Math.ceil(0.1); Math.ceil(1.9); 2. 向下取整使用: Math.floor() Math.floor(0.1); Math ...
- SQLSERVER 数值 四舍五入取整 向上取整 向下取整
[四舍五入取整截取] select round(54.56,0) [向下取整截取] SELECT floor(54.56) [向上取整截取] SELECT ceiling(13.15)
- python中的向上取整向下取整以及四舍五入的方法
import math #向上取整print "math.ceil---"print "math.ceil(2.3) => ", math.ceil(2. ...
- Python向上取整,向下取整以及四舍五入函数
import math f = 11.2 print math.ceil(f) #向上取整 print math.floor(f) #向下取整 print round(f) #四舍五入 #这三个函数的 ...
- c# 三种取整方法 向上取整 向下取整 四舍五入
Math.Round:四舍六入五取整 Math.Ceiling:向上取整,只要有小数都加1 Math.Floor:向下取整,总是舍去小数
- sql 向上取整 向下取整 四舍五入的实例;
SELECT CEILING(23.5/4)'向上取整' ---6 :SELECT FLOOR(23.5/4)'向下取整' ---5 :SELECT ROUND(23.5/4,1)'四舍五入' --5 ...
- c++ 取整:四舍五入 向上取整 向下取整
对于数据的取整是经常需要考虑的 现在总结如下 #include<iostream> #include<cmath> using namespace std; int main( ...
随机推荐
- JS 中 原生方法 (四) --- Object
Javascript 中 str. arr.date.obj 等常见的原生方法总结 本文也说主要阐释了 Javascript 中的基础类型和 引用类型的自带方法,那么熟悉的同学又可以绕道了 总是绕道, ...
- Chapter 5 Blood Type——13
"Kryptonite doesn't bother me, either," he chuckled. “氪星石也不会影响我,” 他笑着说道. "You're not ...
- Jvm垃圾回收器(算法篇)
在<Jvm垃圾回收器(基础篇)>中我们主要学习了判断对象是否存活还是死亡?两种基础的垃圾回收算法:引用计数法.可达性分析算法.以及Java引用的4种分类:强引用.软引用.弱引用.虚引用.和 ...
- mariadb 内存占用优化
本文由云+社区发表 作者:工程师小熊 摘要:我们在使用mariadb的时候发现有时候不能启动起来,在使用过程中mariadb占用的内存很大,在这里学习下mariadb与内存相关的配置项,对mariad ...
- Mysql语句中当前时间不能直接使用C#中的Date.Now传输
MySql中处理字符串时间,会默认把第一个数字当成年份处理. 在C#服务器中,使用Date.Now.ToString()生成的字符串时间,如果不指定字符串格式,C#会按照系统语言输出不同的字符串格式, ...
- .Net中Log4Net的使用
2018-08-23 .Net中Log4Net的使用 一.log4net 分类型记录日志存放多个日志文件 1.在webconfig里添加配置 1.1 在<configSections> 中 ...
- GUID获取16位19位22位的唯一字符串
/// <summary> /// 根据GUID获取16位的唯一字符串 /// </summary> /// <param name=\"guid\" ...
- .class文件查看
十六进制查看(不仅class文件可以看,其他文件格式也可以) hexdump -C XXX.class #注意C是大写(小写c则输出十进制) 反汇编查看 javap -c XXX.class java ...
- Java小工具 根据文本批量修改文件名
功能 可以根据使用路径修改文件名,已经测试,可以成功运行 思路 先是读取到txt文本文件,之后使用String的spilt进行分割,每一行的格式为 旧名字 新名字,中间的空格可以使用|或者其他字符代替 ...
- 表单提交前,判断webuploader是否上传
function busUpLoadImg(postUrl,id) { .......//省略部分不用修改 uploader.on('uploadSuccess', function(file) { ...