C#使用round函数四舍五入的方法
本文实例讲述了C#使用round函数四舍五入的方法。分享给大家供大家参考。具体分析如下:
C#中的round函数实际上不是真正的四舍五入函数,一般的程序设计语言的round函数也都不是四舍五入函数,而是银行家舍入法函数,也就是“四舍六入五考虑,五后非零就进一,五后为零看奇偶,五前为偶应舍去,五前为奇要进一”
但C#中的round函数似乎也没有完全遵循这个规则,我们来看看微软官方给的范例:
using System; public class Example { public static void Main() { double[] values = { 2.125, 2.135, 2.145, 3.125, 3.135, 3.145 }; foreach (double value in values) Console.WriteLine("{0} --> {1}", value, Math.Round(value, 2, MidpointRounding.AwayFromZero)); } } // The example displays the following output: // 2.125 --> 2.13 // 2.135 --> 2.13 // 2.145 --> 2.15 // 3.125 --> 3.13 // 3.135 --> 3.14 // 3.145 --> 3.15
看到了吧,2.135和3.135 做了round操作后得到的结果居然是2.135不进位,2.145进位了。
希望本文所述对大家的C#程序设计有所帮助。
相关推荐
-
c#匹配整数和小数的正则表达式
匹配整数的一种表达式: Regex.IsMatch(inputerstr, "^([0-9]{1,})$") 其中Inputerstr是要匹配的字符串 这个表达式仅匹配整数,如果是整数形式返回true,否则为false 匹配小数格式的表达式: Regex.IsMatch(inputerstr, "^([0-9]{1,}[.][0-9]*)$") 其中Inputerstr是要匹配的字符串 这个表达式仅匹配数字中有小数点格式的数字,如果是带有小数点格式的纯数字,返回tr
-
C#数组学习相关资料整理
数组概述 C# 数组从零开始建立索引,即数组索引从零开始.C# 中数组的工作方式与在大多数其他流行语言中的工作方式类似.但还有一些差异应引起注意. 声明数组时,方括号 ([]) 必须跟在类型后面,而不是标识符后面.在 C# 中,将方括号放在标识符后是不合法的语法. int[] table; // not int table[]; 另一细节是,数组的大小不是其类型的一部分,而在 C 语言中它却是数组类型的一部分.这使您可以声明一个数组并向它分配 int 对象的任意数组,而不管数组长度如何. 复制代
-
C#之IP地址和整数互转的小例子
源码: 复制代码 代码如下: [StructLayout(LayoutKind.Explicit)] public struct IP { public IP(UInt32 value) { this._text1 = 0; this._text2 = 0; this._text3 = 0; this._text4 = 0; this._value = value; } public
-
C#四舍五入(函数)用法实例
效果: 说明:输入小数,然后输入要保留的位数, 事件:点击Button 代码: 复制代码 代码如下: public static double Round(double d, int i) { if (d >= 0) { d += 5 * Math.Pow(10, -(i + 1));//求指定次数的指定次幂 } else {
-
C#编程实现四舍五入、向上及下取整的方法
本文实例讲述了C#编程实现四舍五入.向上及下取整的方法.分享给大家供大家参考,具体如下: 在处理一些数据时,我们希望能用"四舍五入"法实现,但是C#采用的是"四舍六入五成双"的方法,如下面的例子,就是用"四舍六入五成双"得到的结果: double d1 = Math.Round(1.25, 1);//1.2 double d2 = Math.Round(1.24, 1);//1.2 double d3 = Math.Round(1.26, 1);
-
C#中Decimal类型截取保留N位小数并且不进行四舍五入操作
一.问题描述 开发中,需要使Decimal类型数据保留小数点后的两位小数且不需要进行四舍五入操作,即直接截取小数点后面的两位小数即可.例如:1.245M --> 1.24,而不是1.25 使用Decimal.Round()方法可以实现保留Decimal类型数据小数点后的若干位小数,但是该方法会进行四舍五入操作,而不是直接截取.所以,该方法不可取,在网上搜寻一番也没有找到合适的方法,便自己实现了一个截取Decimal类型数据小数点后若干位的方法. 二.详细的实现代码 using System; n
-
C#动态调整数组大小的方法
本文实例讲述了C#动态调整数组大小的方法.分享给大家供大家参考.具体如下: 通常,我们创建一个数组后就不能调整其长度,但是Array类提供了一个静态方法CreateInstance用来创建一个动态数组,所以我们可以通过它来动态调整数组的长度. namespace ArrayManipulation { Class Program { static void Main (String[] args) { int[] arr = new int[]{1,2,3}; PrintArr(arr); ar
-
c#中的浮点型转整形的舍取 四舍五入和银行家舍入实现代码
Double显示转换int 复制代码 代码如下: static void Main(string[] args) { Console.WriteLine("5.1~{0}", (int)5.1d); Console.WriteLine("5.5~{0}", (int)5.5d); Console.WriteLine("5.8~{0}", (int)5.8d); Console.WriteLine("2.1~{0}", (int
-
C#使用round函数四舍五入的方法
本文实例讲述了C#使用round函数四舍五入的方法.分享给大家供大家参考.具体分析如下: C#中的round函数实际上不是真正的四舍五入函数,一般的程序设计语言的round函数也都不是四舍五入函数,而是银行家舍入法函数,也就是"四舍六入五考虑,五后非零就进一,五后为零看奇偶,五前为偶应舍去,五前为奇要进一" 但C#中的round函数似乎也没有完全遵循这个规则,我们来看看微软官方给的范例: using System; public class Example { public stati
-
MySQL中ROUND函数进行四舍五入操作陷阱分析
本文实例讲述了MySQL中ROUND函数进行四舍五入操作陷阱.分享给大家供大家参考,具体如下: 在MySQL中, ROUND 函数用于对查询结果进行四舍五入,不过最近使用ROUND函数四舍五入时意外发现并没有预期的那样,本文将这一问题记录下来,以免大家跟我一样犯同样的错误. 问题描述 假如我们有如下一个数据表 test ,建表语句如下 CREATE TABLE test ( id int(11) NOT NULL AUTO_INCREMENT, field1 bigint(10) DEFAULT
-
PHP中round()函数对浮点数进行四舍五入的方法
本文实例讲述了PHP中round()函数对浮点数进行四舍五入的方法.分享给大家供大家参考.具体方法如下: 语法:round(x,prec) 参数 描述 x 可选,规定要舍入的数字. prec 可选,规定小数点后的位数. 说明:返回将 x 根据指定精度 prec(十进制小数点后数字的数目)进行四舍五入的结果,prec 也可以是负数或零(默认值). 提示和注释 注释:php默认不能正确处理类似 "12,300.2" 的字符串. 注释:prec 参数是在 php 4 中被引入的,实例代码如下
-
python中round函数保留两位小数的方法
在我们日常计算的过程中,如果计算出小数,对大量的被保留数据,采用四舍五入这种保留法的误差总和是最小的,能使被保留部分的与实际值差值不超过最后一位数量级的二分之一.四舍五入是一种精确度的保留法,是我们使用这种方法为基本保留法的原因.那在我们的python中如何四舍五入?如何保留小数?用round函数就可以. 1.round函数 python的内置函数,用于数字的四舍五入. 2.round 负数 四舍五入是围绕着0来计算的 示例 round(0.5) # 1.0 round(-0.5) #-1.0
-
sqlserver四舍五入使用round函数及cast和convert函数
引言 今天和测试沟通一个百分比计算方式时遇到一个问题, 我在存储过程里用到了强转CAST(32.678 AS DECIMAL(5,1)) 我认为该方式只会保留一位小数,我给测试的回复是我并没有用到四舍五入函数,数据也没有四舍五入,而测试说他们自己验证后觉的数据是经过四舍五入了的. 想到这里于是我再试了试存储过程的每个计算点,才发现了这个问题. ROUND 那么用到四舍五入并且保留小数点时我们肯定会首选ROUND函数, 如果字段的数据类型是decimal(18,10)时那么四舍五入后还会有很多
-
PHP四舍五入、取整、round函数使用示例
小数例子: PHP保留两位小数并且四舍五入 复制代码 代码如下: $n=0.1265489; echo sprintf("%.2f", $n); // 0.13 大家可以看到我们用到了sprintf函数对$n进行了格式化%.2f是目标格式,其中2表示两位f表示float(浮点型) 第3为小数6被四舍五入 再看个例子 复制代码 代码如下: $n=0.1265489 echo substr(sprintf("%.3",$n),0,-1);// 0.12 代码输出了保留2
-
C# Math.Round()函数问题
Math.Round ()在四舍五入时有个问题: Math.Round(2.5,0) = 2; Math.Round(3.5,0) = 4; 2.5应该等于3才对! 在ASP中也存在这个问题,不过ASP中还有个FormatNumber可以用,但目前还不知道怎么使用? 解释: Math.Round()准确的说,这个函数不是四舍五入,而是四舍六入五凑偶,就是说小于4或大于6的该舍该入是没有争议的,而5处在正中间,如果四舍五入则会造成数据的整体偏差,所以采取的原则是:如果舍入位为5,则舍入后最后一位为
-
php实现四舍五入的方法小结
本文实例总结了php实现四舍五入的方法.分享给大家供大家参考.具体分析如下: php实现四舍五入的三种方法,分别通过number_format函数.round函数和sprintf格式化输出的方法实现四舍五入 1.number_format 方法实现四舍五入 $number = 1234.5678; $nombre_format_francais = number_format($number, 2, ',', ' '); // 1 234,57 $english_format_number =
-
PHP实现数据四舍五入的方法小结【4种方法】
本文实例总结了PHP实现数据四舍五入的方法.分享给大家供大家参考,具体如下: 在PHP开发中,有时候我们会遇到将数据进行四舍五入的运算情况,本文分享了用PHP实现数据四舍五入的4种方法. php实现数据四舍五入的4种方法,分别通过number_format()函数.round()函数和sprintf()格式化以及intval()函数输出的方法实现四舍五入.严格来说最后一种不是严格的四舍五入,最后一种仅是将数据的小数部分去掉,只保留整数部分,详细情况会在下面进行讨论. 1.number_forma
-
python中format函数与round函数的区别
目录 前言 不同之处 round函数 进位原则 示例 format函数 示例 总结 前言 在对数据进行处理时我们常常会用到format与round函数.二者都能保留若干位小数,但在处理过程上稍有不同. 不同之处 返回类型不同:format函数进行格式化后返回结果的数据类型是str字符串,round函数返回结果的数据类型是float浮点型 进位不同:保留若干位小数时,format遵循的是四舍五入原则,而round并不遵循该原则,round进位原则为四舍六入次偶进. 位数保留不同:规定如保留6位小数
随机推荐
- Ext.FormPanel 提交和 Ext.Ajax.request 异步提交函数的区别
- Java使用Math.random()结合蒙特卡洛方法计算pi值示例
- 浅谈Java中Collection和Collections的区别
- Java中类的加载顺序剖析(常用于面试题)
- javascript编写贪吃蛇游戏
- ASP.NET的实用技巧详细介绍
- ThinkPHP应用模式扩展详解
- ThinkPHP中html:list标签用法分析
- Android高仿微信聊天界面代码分享
- jQuery bxCarousel实现图片滚动切换效果示例代码
- jsp简单实现页面之间共享信息的方法
- Linux XAMPP下启用WordPress的自定义文件名(伪静态)功能
- SQLServer 数据集合的交、并、差集运算
- CentOS6.5下Redis安装与配置详细步骤
- sql server 2000 数据库自动备份设置方法
- php实现按照权重随机排序数据的方法
- Android顶部工具栏和底部工具栏的简单实现代码
- PHP中的生成XML文件的4种方法分享
- Android中RecyclerView的item宽高问题详解
- NodeJs form-data格式传输文件的方法