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#程序设计有所帮助。

(0)

相关推荐

  • 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位小数

随机推荐