有一组数字,想判断一组数字中最多的有几位小数,乘以10的指定幂,转为整数,此处教大家一个高级的写法,拒接无脑for循环

decimal

decimal[] numbers = new decimal[] { 1.2345m, 2.3456789m, 3.456m, 4.56789m, 5.67890m, 6.78901234m };
int maxDecimalPlaces = numbers.Max(n => decimal.GetBits(n)[3] >> 16);
int[] intNumbers = numbers.Select(n => (int)(n * (decimal)Math.Pow(10, maxDecimalPlaces))).ToArray();

double: 如果想更短,可以double转decimal然后用上面的

double[] numbers = new double[] { 1.2345, 2.3456789, 3.456, 4.56789, 5.67890, 6.78901234 };
int maxDecimalPlaces = numbers.Max(n => {
string str = n.ToString();
int decimalIndex = str.IndexOf(".");
return decimalIndex >= 0 ? str.Length - decimalIndex - 1 : 0;
});
int[] intNumbers = numbers.Select(n => (int)(n * Math.Pow(10, maxDecimalPlaces))).ToArray();

C# decimal double 获取一组数字 小数点后最多有几位的更多相关文章

  1. java 保留小数点后N位数(若干位),几种实现的方式总结

    import java.math.BigDecimal;import java.text.DecimalFormat;import java.text.NumberFormat;/** * java ...

  2. Java中double变量精确到小数点后几(2)位

    import java.math.BigDecimal; import java.text.NumberFormat; public class Java中double类型的数据精确到小数点后两位 { ...

  3. android edittext 限制小数点后最多只能输入两位数字

    android:inputType="numberDecimal" private InputFilter lengthFilter = new InputFilter() { @ ...

  4. iOS中UITextField输入判断小数点后两位

    在输入金额的UITextField中,要给予三个规则的判断 1. 只能输入数字(可以通过设置键盘类型为Decimal Pad) 2. 小数点只能有一个 3. 小数点后最多有两位数字 (可以通过正则表达 ...

  5. 控制input标签中只能输入数字以及小数点后两位

    js 代码如下: /* 控制input标签中只能输入数字 和小数点后两位 */ function checkNum(obj) { //检查是否是非数字值 if (isNaN(obj.value)) { ...

  6. linq的decimal类型保存到数据库只保存到小数点后两位的问题

    今天的一个decimal类型保存到数据的问题困扰了我很长时间,最后就是一个小小的设置问题解决······坑······深坑···· 话不多说,直接说问题,在说答案: 问题:linq当采用EF的DbCo ...

  7. newcoder Tachibana Kanade Loves Probability(小数点后第k位)题解

    题意:题目链接立华奏在学习初中数学的时候遇到了这样一道大水题: “设箱子内有 n 个球,其中给 m 个球打上标记,设一次摸球摸到每一个球的概率均等,求一次摸球摸到打标记的球的概率” “emmm...语 ...

  8. 如何实现parseFloat保留小数点后2位

    Number.toPrecision(2);function toPrecision ( [precision : Number] ) : String参数 precision 可选项.有效位数.值必 ...

  9. input内强制保留小数点后两位 位数不足时自动补0

    input内强制保留小数点后两位 位数不足时自动补0 小数点后位数超出2位时进行四舍五入 需引入jquery包 1.11.2版本 1 function xiaoshu(x) 2 { 3 var f = ...

  10. C++ double类型转string类型后,怎么实现小数点后只显示一个数字

    C++ double类型转string类型后,怎么实现小数点后只显示一个数字 #include <iostream> #include <sstream> #include & ...

随机推荐

  1. 通过使用chatgpt 逐步解决egg项目学习的一些问题【笔记】

    我的需求提问 创建一个html页面,这个页面包括通过学生id查询学生详情的组件,和通过学生姓名,身份证,选择班级的组件,并把代码告诉我 chatgpt回答 好的,以下是一个包含两个组件的HTML页面, ...

  2. 监听watch踏坑之旅!!!vuex中如果数组发生变换但是用watch你监听不到

    vuex: SET_INFO(state,info) { console.log('info',info) state.info.unshift(info) state.info.pop() cons ...

  3. 投资组合计算分析——R语言

    "投资组合"是指金融资产(如股票.债券和现金)的任何组合.投资组合有很多类型,包括市场投资组合和零投资投资组合.可以使用以下任何一种投资方法和原则来管理投资组合的资产分配:股息加权 ...

  4. 随机服务系统模拟—R实现(二)

    M/M/1随机服务系统的模拟 M/M/1模型是一种出生-死亡过程,此随机过程中的每一个状态代表模型中人数的数目.因为模型的队列长度无限且参与人数亦无限,故此状态数目亦为无限.例如状态0表示模型闲置.状 ...

  5. PyCharm解决Git冲突

    技术背景 在前面的一篇博客中,我们介绍了Fork到自己名下的本地仓库如何与远程原始仓库创建链接的方法.在这篇文章中,我们将要讲解如何应对在这种异步开发的过程中经常有可能会遇到的Git冲突问题,在Pyc ...

  6. CentOS8安装Oracle datebase 19C

        我这里安装Oracle数据库是rpm格式的包.需要先得有以下依赖包关系,先依次按此顺序安装. yum install ./compat-libcap1-1.10-7.el7.x86_64.rp ...

  7. 开源Apinto网关-流量策略

    背景介绍 Apinto是一款高性能.可扩展.易维护的API网关. Apinto网关基于GO语言模块化开发,5分钟极速部署,配置简单.易于维护,支持集群与动态扩容,企业级开箱即用.Apinto除了提供丰 ...

  8. 0002 嵌入式开发带你从小白到大佬系列之——Linux文件系统、常用文件操作命令(一)及用户权限

    1.熟悉Linux的文件系统结构 Linux的文件系统结构其实是一个树形的分层组织结构,如下图: Linux系统目录结构及目录路径: 1.1.文件系统层次结构标准 Linux是开源的操作系统,各个Li ...

  9. elasticsearch 官方优化建议

    1.一般建议   a.不要返回过大的结果集.这个建议对一般数据库都是适用的,如果要获取大量结果,可以使用search_after api,或者scroll (新版本中已经不推荐).   b.避免大的文 ...

  10. ZR.Admin小改和VUE3版本体验

    前言 孔乙己显出极高兴的样子,将两个指头的长指甲敲着柜台,点头说:"对呀,对呀!......回字有四样写法,你知道么?" 大家好,我是44岁的大龄程序员码农阿峰.阿峰从事编程二十年 ...