作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
如何按 double 的小数部分对 double 列表进行排序。
例如: 对于输入 <1.2, 2.3, 1.12, 5.1>
, 排序后输出 应该是 <5.1, 1.12, 1.2, 2.3>
最佳答案
您可以通过 OrderBy()
和 Math.Truncate()
方法实现,如下所示。 x-Math.Truncate(x)
为您提供小数点后的数字,OrderBy
将按升序排列它们。看看这个example并尝试使用以下代码片段
List<double> input = new List<double>(){1.2, 2.3, 1.12, 5.1};
input = input.OrderBy(x=>x-Math.Truncate(x)).ToList();
Console.WriteLine(String.Join("\n",input));
或者您也可以尝试使用 .OrderBy(x=>x-(int)x)
而不是 OrderBy(x=>x-Math.Truncate(x)
关于c# - 在 C# 中,如何按尾数对 double 列表进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44015292/
单精度(32 位):位除法为 like this : 所以我们有 23 位的尾数/有效数。 因此我们可以表示 2^23 个数字(通过 23 位):即 8388608 --> 7 位长。 但是 我读到尾
所以,我正在尝试编写一个函数,以其 (mantissa * 2^exponent) 格式打印给定的 float (n)。我能够得到符号和指数,但不能得到尾数(无论数字是多少,尾数始终等于 0.0000
我是一名优秀的程序员,十分优秀!