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 ...
随机推荐
- tyvj1391走廊泼水节
题目:http://www.joyoi.cn/problem/tyvj-1391 考虑对于每一条边,新加的长度是(左边点数*右边点数-1)*(当前边权+1): 然后要kruskal的思想,把边从小到大 ...
- golang 如何查看程序执行消耗时间
写代码过程中,有时需要分析代码块的时间消耗. 本文介绍使用time包中的Since函数查看程序执行时间. package main import ( "fmt" "tim ...
- C#利用zxing.net操作二维码和条形码
下载地址:http://zxingnet.codeplex.com/ zxing.net是.net平台下编解条形码和二维码的工具,使用非常方便. 首先下载二进制dll文件,引入工程: 代码: usin ...
- springMVC学习(2)
一.使用注解的处理器映射器和适配器 1) 在这个下面的/org/springframework/web/servlet/DispatcherServlet.properties文件,从这个文件中加载处 ...
- python selenium-6 HTML测试报告
1.生成HTML测试报告 import unittest,sys from selenium import webdriver from time import sleep class TestBai ...
- 1067 Sort with Swap(0, i) (25 分)
1067 Sort with Swap(0, i) (25 分) Given any permutation of the numbers {0, 1, 2,..., N−1}, it is easy ...
- [UE4]UE4中的常见类
一.Actor:可以放在世界中物体 二.Pawn:可以接受Controller输入的Actor 三.Character:是一个可以行走.跑.跳等行为的Pawn 四.Controller:没有物理表现的 ...
- configure: error: You need a C++ compiler for C++ support.
安装pcre包的时候提示缺少c++编译器 报错信息如下: configure: error: You need a C++ compiler for C++ support. 解决办法,使用yum安装 ...
- xiao look 知识贴
从事中医临床近二十年了,多少总是积累了点经验,本来准备将来老了经验更丰富的时候传给子女的,可惜儿子根本不打算学医.在这个论坛里也混了不短了,感觉这里的风气很纯正,也有不少立志于中医的人士.为此,我决定 ...
- python函数进阶
知识内容: 1.函数即变量 2.嵌套函数 3.lambda表达式与匿名函数 4.递归函数 5.函数式编程简介 6.高阶函数与闭包 一.函数即变量 1.变量的本质 声明一个变量,在python里本质上讲 ...