C#四舍五入说明
string.Format("{0:N2}", d) 与 Math.Round(d, 2).ToString() 不总是相等
string.Format("{0:N2}", d) 与 RoundChinese(d, 2).ToString() 总是相等

private static void TestDisplayDecimal()
{
// 结论1:string.Format("{0:N2}", d) 与 Math.Round(d, 2).ToString() 【不总是相等】
// 结论2:string.Format("{0:N2}", d) 与 RoundChinese(d, 2).ToString() 【总是相等】 for (var i = ; i <= ; i++)
{
var d = 2.14M + i / 1000M;
bool ret = string.Format("{0:N2}", d) == Math.Round(d, ).ToString();
if (!ret)
{
Console.WriteLine(d + ":" + string.Format("{0:N2}", d) + "," + Math.Round(d, ) + "," + ret);
}
} Console.WriteLine("-----------------------"); for (var i = ; i <= ; i++)
{
var d = 2.14M + i / 1000M;
bool ret = string.Format("{0:N2}", d) == RoundChinese(d, ).ToString(); Console.WriteLine(d + ":" + string.Format("{0:N2}", d) + "," + RoundChinese(d, ).ToString() + "," + ret);
}
}
/// <summary>
/// 中国版的四舍五入
/// </summary>
/// <param name="value"></param>
/// <param name="digit"></param>
/// <returns></returns>
public static decimal RoundChinese(decimal value, int digit)
{
double vt = Math.Pow(, digit);
//1.乘以倍数 + 0.5
decimal vx = value * (decimal)vt + 0.5M;
//2.向下取整
decimal temp = Math.Floor(vx);
//3.再除以倍数
return (temp / (decimal)vt);
}
C#四舍五入说明的更多相关文章
- 关于delphi7的四舍五入
round 函数是银行用的 采用了 四舍六入5留偶 网上找到了个实现方法 先乘1000,用Trunc取整,除10取余,余数再取整,如果大于5,进位,小于5不进位. 函数就好写了 现在只写一个保留两 ...
- SQL SERVER四舍五入你除了用ROUND还有其他方法吗?
引言 今天和测试沟通一个百分比计算方式时遇到一个问题, 我在存储过程里用到了强转CAST(32.678 AS DECIMAL(5,1)) 我认为该方式只会保留一位小数,我给测试的回复是我并没有用到四 ...
- C# decimal保留指定的小数位数,不四舍五入
decimal保留指定位数小数的时候,.NET自带的方法都是四舍五入的. 项目中遇到分摊金额的情况,最后一条的金额=总金额-已经分摊金额的和. 这样可能导致最后一条分摊的时候是负数,所以自己写了一个保 ...
- Chrome/Firefox 中头toFixed方法四舍五入兼容性问题
每个Number的toFixed()方法可把 Number 四舍五入为指定小数位数的数字.四舍五入顾名思义,4及以下舍去,5及以上加1. 四舍 1.31.toFixed(1) // 1.3 1.32. ...
- Javascript四舍五入(Math.round()与Math.pow())
代码 Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ ...
- JS处理四舍五入函数 toFixed(n)(可取小数点后n位)
在JS中四舍五入的函数 toFixed(n) , n为要保留的小数位数. n为0~20,当n超过20的时候,JS会出错. 如果小数点前和要截取的前一位都是0时,不会按常理截取. var h ...
- iOS 常用的向上,向下取整, 四舍五入函数
向上取整:ceil(x),返回不小于x的最小整数; 向下取整:floor(x),返回不大于x的最大整数; 四舍五入:round(x) 截尾取整函数:trunc(x)
- js 四舍五入
举例excel: ROUND 会四舍五入的:ROUNDDOWN 取小数点后两位数据,不管进位问题:ROUNDUP 取小数点后两位数据,只要有第三位小数都会进位的.关键看你取数的要求 在js如果要求 ...
- sql 保留两位小数+四舍五入
1. ROUND(该函数,只是负责四舍五入到两位小数,但是不负责截断 只留两位小数,例如下例:) 关于ROUND函数,我们平常理解为4舍5入,如: print ROUND(13.145, 2); 结果 ...
- Java中的四舍五入
经典案例分析:public class RoundTest { public static void main(String[] args) { System.err.printl ...
随机推荐
- [转]Nginx反向代理和负载均衡部署指南
Nginx反向代理和负载均衡部署指南 1. 安装 1) 从Nginx官网下载页面(http://nginx.org/en/download.html)下载Nginx最 ...
- OSI7层封包解包动态图-数据在网络中的传输过程.gif
- meta标签和JS实现页面刷新与重定向
下面列了五个例子来详细说明,这几个例子的主要功能是:在5秒后,自动跳转到同目录下的hello.html(根据自己需要自行修改)文件.1) html的实现 1 2 3 4 5 6 <head& ...
- SSH pts 虚拟终端
昨天晚上小试了一下SSH,学到了一些乱七八糟的命令,知道了一种古老装逼的聊天方式:write.期间下定决心终于弄明白了pts/0之类的东西到底是什么东西. 先说pts/0吧,man里面是这样说的:pt ...
- webstorm打开后无法显示文件夹目录
最近接触webstorm,上午研究怎么删除项目,不小心把项目在目录中删除了,然后重新创建时,无法显示了. 状况类似这样的 百度上搜了一些没搜到,关键字是“webstorm 项目 目录 无法显示文件夹” ...
- DHTMLX学习总结
1.布局 Lyout = new dhtmlXLayoutObject(document.body, "2U"); 2.Grid grid.setHeader("#mas ...
- Eclipse/MyEclipse连接Hadoop集群出现:Unable to ... ... org.apache.hadoop.security.AccessControlExceptiom:Permission denied问题
问题详细如下: 解决办法: <property> <name>dfs.premissions</name> <value>false</value ...
- REST-assured 3发送图片
上传图片,需要media_id,从上传临时素材获取:https://work.weixin.qq.com/api/doc#10112 https://qyapi.weixin.qq.com/cgi-b ...
- Linux下的压缩(zip)解压(unzip)缩命令
.zip命令 zip -r myfile.zip ./* 将当前目录下的所有文件和文件夹全部压缩成myfile.zip文件,-r表示递归压缩子目录下所有文件. 2.unzip命令 unzip -o ...
- 解决“Can't bind to local 8630 for debugger”错误--查杀多余进程
Can't bind to local 8630 for debugger 表明本地8630端口被占用 1.Windows平台 在windows命令行窗口下执行: 1.查看所有的端口占用情况 C:\& ...