• 数字格式化


    有时候不需要太多的小数位数,这个时候可以采用小数截断的方式实现,大概有以下几种方法:
    1.ToString控制格式
    例如a是一个double型的数,为了只保留4位有效数字,可以采用该方法:
    a=Convert.ToDouble(a.ToString("#.0000"));
    这样就是直接截断,注意没有四舍五入,对于123.12348和123.12344截断的结果是一样的。
    2.四舍五入的方法
    这个使用了Math类下的静态方法Round
    根据MSDN中的提示,Round的一个函数是这样定义的:
    public static double Round(double value,int digits)
    其中values是要舍入的双精度浮点数,而digits是返回值中的小数位数,注意digits介于0到15之间
    这个时候
    对于123.12345和123.12344:
    a=Math.Round(123.12348,4);//123.1235
    a=Math.Round(123.12344,4);//123.1234
    注意这里有个问题,对于123.12345保留四位小数,一定是123.1235吗?
    不一定。Round舍入有时称为就近舍入或四舍六入五成双。 它可以将因单方向持续舍入中点值而导致的舍入误差降到最低。 若要控制 Round(Double, Int32) 方法使用的舍入类型,请调用 Math.Round(Double, Int32, MidpointRounding) 重载。 由于用十进制数表示浮点数或对浮点数进行算术运算可能导致的误差,在某些情况下,Round(Double, Int32) 方法可能不会对中点值四舍五入到在 digits 位置中最近的偶数值。 如下面的示例所示,其中 2.135 将舍入为 2.13 而不是 2.14。 这是因为在内部该方法将 value 乘以10 *digits,并且乘法运算在这种情况下会损失精度。 
    3.Floor和Ceiling方法
    这种方法是先乘以10的N次方,然后Floor或者Ceiling,再除以10的N次方,好处是你可以控制舍入的方向。
     
     
    本文转载自:http://379910987.blog.163.com/blog/static/33523797201181322557166/
  • 相关阅读:
    $_SERVER
    下面介绍mysql中模糊查询的四种用法:
    qq第三方登录
    远程连接数据库出错
    lnmp中的tp的pathinfo模式
    TP5配置所谓的url_moudel
    tp3.2.3中的xss攻击基本防护
    tp中的Csv文件读取(原创)
    mysql语句整理
    SVN的详细使用
  • 原文地址:https://www.cnblogs.com/ItDotNet/p/5253850.html
Copyright © 2020-2023  润新知