- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
考虑下面的 C# 代码:
public class Program
{
public static void Main(string[] args)
{
//Your code goes here
Console.WriteLine(double.MinValue < double.MinValue + 1);
Console.WriteLine(int.MinValue < int.MinValue + 1);
}
}
输出将是:
False
True
我知道
Console.WriteLine(double.MinValue + 1);
Console.WriteLine(double.MinValue);
将打印相同的 -1,79769313486232E+308
值。
我的问题是:为什么会发生这种“意外”和奇怪的行为?我希望第一行也返回 true
。
例如,下面的 Java 程序返回预期的 true
:
public class MyClass {
public static void main(String args[]) {
System.out.println(Double.MIN_VALUE < Double.MIN_VALUE + 1);
}
}
为什么会有这种不同的行为?
最佳答案
这两个最小值是不同的。
在 Java 中,MIN_VALUE
是最小的正 double
值的名称。在 C# 中,MinValue
是小于所有其他有限值的 double 值的名称;在 Java 中,该值将是 -Double.MAX_VALUE
。
而且该值非常负,以致于将 1
添加到它会在四舍五入中丢失。 double
没有足够的精度来表示 MinValue
与 MinValue+1
不同。它大致是 -1800000....00,其中有 307 个零。 double
只能粗略地表示 17 位十进制数字的精度。所以加一会在四舍五入中丢失。
关于java - 为什么表达式 (double.MinValue < double.MinValue + 1) 返回 false?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46330814/
我想知道,为什么 SqlDateTime.MinValue 与 DateTime.MinValue 不一样? 最佳答案 我认为 SQL 和 .NET 的 Date 数据类型之间的差异源于 SQL Se
在 C# 中我看到了 -1 * int.MinValue == int.MinValue 这是一个错误吗?当我试图实现搜索树时,它真的把我搞砸了。我最终使用了 (int.MinValue + 1) 这
我第一次尝试这个(在 vb.net 中) (Double.MinValue + Double.Epsilon) > Double.MinValue 但这评估为假。然后我尝试了这个 (Double.Mi
考虑下面的 C# 代码: public class Program { public static void Main(string[] args) { //Your
是否可以为 minValue 规则编写依赖回调,例如使用所需的文本? 我有 2 个必填字段 -> 已付价格和已见价格(对于回扣表格)。我尝试写这样的东西: minValue: functio
我正在使用返回 1.1.0001 的 Datetime.Minvalue。此值无法存储到 DB,因为年份小于 1975。 是否可以将 DateTime.Minvalue 覆盖为 1.1.1901? 问
我正在尝试将 Int64.MinValue (-0x8000000000000000) 写为负十六进制数,但 Visual Studio 2010 不允许我这样做,因为它假定 0x8000000000
最近在分析 session 期间,一种方法引起了我的注意,在分析器的反编译版本中它看起来像这样: public static double dec2f(Decimal value) { if
我刚刚发现我的 SqlDateTime.MinValue 在不同的机器上是不同的。 有时是 = DateTime(1953, 1, 1, 0, 0, 0); 但在其他机器上它是 = DateTime(
我正在学习 Java 并正在阅读一本 Java 编程书。我已经到了他们教我有关数组的程度。 因此,我创建了一个采用非特定数量的命令行参数的数组,并将其与书籍代码结合起来以打印出该数组中的最大值。它工作
我正在编写一个使用 Quartz.Net 的 F# 服务轮询另一个服务(已用 C# 编写): [] [] type PollingJob() = interface IJob with
所以我目前正在尝试测试一个使用随机函数的函数。为了测试它,我将一个种子值传递给 C# Random 函数。 (即系统。随机) 我的测试用例涉及使用 int.MaxValue 和 int.MinValu
我们试图在我们的应用程序中覆盖 DateTime.MinValue,但是这样做我们注意到我们的 Web 服务超时,下面是示例代码。不确定哪里出了问题/我们缺少什么。 public MainWindo
如演示中所示,maxValue 设置为 2017 年,但图表一直到 2020 年。 如何让图表真正停在 2017 年?它在我的页面上占用了太多空间,因此我想对其进行优化 See demo fiddle
我在使用 TimeSpans 时找到了关于 TimeSpan.MinValue 的信息在 MSDN 中。我想知道为什么他们将其直接包含在类里面,或者更好:是否有一个经典示例说明您为什么/何时要使用它。
当我写这段代码的时候 Console.WriteLine(-1 * int.MinValue); 或 int a = -1 * -2147483648; 我得到一个错误 The operation o
我找不到如何检查大于 0 的值,因为 minValue(0) 也接受 0,但是如果使用 minValue(1) 那么任何介于 0 之间的小数并且 1 也不会被接受。 我也不知道为什么我不能使用来自 d
我正在尝试绘制具有对数刻度的 Google 条形图。但是,它从 1 开始,而不是 0。这看起来像是错误数据,因为具有一个值的条目在呈现时没有条形。我尝试将 minValue 设置为零,但当 logSc
我认为这看起来像是 C# 编译器中的错误。 考虑这段代码(在一个方法中): const long dividend = long.MinValue; const long divisor = -1L;
我似乎无法将 sqldatatime.minvalue 转换为 datetime 对象。 我试过: Datetime dt = Convert.ToDateTime(SqlDateTime.MinVa
我是一名优秀的程序员,十分优秀!