1.问题描述:

最近在处理软件结果显示时,发现如果利用 Math.Round(Number,N) 取N为小数时,有的结果不能显示完全

比如:15.3245 和 0.00106 两个数字,如果 N=2 ,保留下来是15.32 和 0.00,这显然不是我想要的结果。

我想要的结果是 15.32 和 0.0011(保留两位有效数字),怎么实现呢?

2.先科普一下有效位数:(百度百科)https://baike.baidu.com/item/%E6%9C%89%E6%95%88%E4%BD%8D%E6%95%B0/415981?fr=aladdin

3.思想:①找出小数点的位置;②从小数点往后数,找到第一个不为 0 的数所在位置;③根据要求,往后取所需位数即可。

4.实现:

class Program
{
static void Main(string[] args)
{
double DNumber=105.04056789; //给定数字
int EffectiveCount = ; //保留有效数字位数
string SNumber = DNumber.ToString();
char[] CNumberArr = SNumber.ToCharArray();
int DotIndex = SNumber.IndexOf('.'); //不知道怎么索引“double”类型,选择了一个笨方法 double Value = ; //输出值
int TempPrecision = ; //记录小数点后,第一个不为 0 的位置
for (int i = DotIndex+; i < SNumber.Length; i++)
{
TempPrecision++;
if (CNumberArr[i] != '')
{
Value = Math.Round(DNumber, TempPrecision + EffectiveCount-);
break;
}
}
Console.WriteLine(Value);
Console.ReadKey();
}
}

5. 最后说两句:检索了一下网上的方法,貌似可以用“正则表达式”实现,但是对于本菜鸟来说太难了,如果有大神知道,希望不吝赐教。

打完收工!

C# 保留两位“有效数字”,而不是两位“小数”的更多相关文章

  1. iOS 科学计数法保留N位有效数字

    iOS开发 项目中用到了将一个很大的数值转换成科学计数法的需求,转换成科学计数法的方式在iOS中其实是很好做的,使用NSNumber 的 kCFNumberFormatterScientificSty ...

  2. js 保留字符串中的关键字前后两个字符其他内容用省略号显示

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  3. TCP 为什么是三次握手,而不是两次或四次?

    TCP是一种全双工的可靠传输协议,核心思想:保证数据可靠传输以及数据的传输效率 A------B 二次握手: 1.A发送同步信号SYN+A's initial sequence number 2.B发 ...

  4. 计算机网络:TCP协议建立连接的过程为什么是三次握手而不是两次?【对于网上的两种说法我的思考】

    网上关于这个问题吵得很凶,但是仔细看过之后我更偏向认为两种说的是一样的. 首先我们来看看 TCP 协议的三次握手过程 如上图所示: 解释一下里面的英文: 里面起到作用的一些标志位就是TCP报文首部里的 ...

  5. .NET环境下导出Excel表格的两种方式和导入两种类型的Excel表格

    一.导出Excel表格的两种方式,其中两种方式指的是导出XML数据类型的Excel(即保存的时候可以只需要修改扩展名为.xls)和真正的Excel这两种. using System; using Sy ...

  6. Java使用BigDecimal保留double、float运算精度、保留指定位数有效数字、四舍五入

    工具类 package --; import java.math.BigDecimal; /** * Created by kongqw on 2015/12/10. */ public final ...

  7. 在db2中 两个数据库之间的两个表的联合查询

    大家好,今天遇到了在db2中 两个数据库之间的两个表的联合查询 我知道oracle中有dblink,可是不知到db2的两个数据库联合查询怎么处理我找了类似于比如两个数据库: db1,db2用户名密码s ...

  8. 两个栈实现队列+两个队列实现栈----java

                                               两个栈实现队列+两个队列实现栈----java 一.两个栈实现一个队列 思路:所有元素进stack1,然后所有出s ...

  9. 【递归打卡2】求两个有序数组的第K小数

    [题目] 给定两个有序数组arr1和arr2,已知两个数组的长度分别为 m1 和 m2,求两个数组中的第 K 小数.要求时间复杂度O(log(m1 + m2)). [举例] 例如 arr1 = [1, ...

随机推荐

  1. 【转载】@Component, @Repository, @Service的区别

    @Component, @Repository, @Service的区别 官网引用 引用spring的官方文档中的一段描述: 在Spring2.0之前的版本中,@Repository注解可以标记在任何 ...

  2. IDEA中配置Jetty Server

    首先去 Eclipse官网下载Jetty jar包 鼠标移到Jetty上时 点击 Git it (得到它) 点击 .zip等待下载完成 然后 解压出来 接下就让我们 开始 使用IDEA了(创建一个We ...

  3. Hivesql中的正则

    ================================================================================================= 一般 ...

  4. asyncio模块实现线程的嵌套和穿插

    import asyncio import time now = lambda :time.time() async def cpc_1(x): print('正在烙比萨饼,预计{}分钟'.forma ...

  5. Codeforces Round #586 (Div. 1 + Div. 2) A. Cards

    链接: https://codeforces.com/contest/1220/problem/A 题意: When Serezha was three years old, he was given ...

  6. 05 django组件:contenttype

    1.django组件:contenttype 组件的作用:可以通过两个字段让表和N张表创建FK关系 1.专题课,学位课 如何关联 过期时间?? 方法1:分别创建 专题课--过期时间表 .学位课--过期 ...

  7. Luogu P1450 [HAOI2008]硬币购物 背包+容斥原理

    考虑如果没有个数的限制,那么就是一个完全背包,所以先跑一个完全背包,求出没有个数限制的方案数即可. 因为有个数的限制,所以容斥一下:没有1个超过限制的方案=至少0个超过限制-至少1个超过限制+至少2个 ...

  8. PHP mysqli_fetch_object() 函数

    定义和用法 mysqli_fetch_object() 函数从结果集中取得当前行,并作为对象返回. 注释:该函数返回的字段名是区分大小写的. <?php // 假定数据库用户名:root,密码: ...

  9. 头条编程题 万万没想到之抓捕孔连顺 JavaScript

    [编程题] 万万没想到之抓捕孔连顺 时间限制:1秒 空间限制:131072K 我叫王大锤,是一名特工.我刚刚接到任务:在字节跳动大街进行埋伏,抓捕恐怖分子孔连顺.和我一起行动的还有另外两名特工,我提议 ...

  10. kubernetes1.11.1 部署prometheus

    部署前提:已经安装好了kubernetes的集群,版本是1.11.1,是用kubeadm部署的. 2台虚拟机:master:172.17.1.36      node1:172.17.1.40 pro ...