【问题标题】:mysterious number 18888888888888888 [closed]神秘号码18888888888888888 [关闭]
【发布时间】:2012-02-09 10:56:35
【问题描述】:

我们的一位测试人员设法将滑块绑定变量设置为 18888888888888888,该变量通常只能取 1-100 之间的值。 (我可以在保存到 xaml 文件的视图模型中观察到它。)这个数字有什么特别之处?

这里有一些细节。该应用程序有一个滑块,它绑定到视图模型中的可观察属性。通常,当应用程序保存工作区时,会使用 XamlServices.Save 保存此视图模型。我的测试人员报告了一些尴尬的行为,加载此项目时滑块的值显示为 -214。我让他把文件发给我,保存的 xaml 中的值包含我的神秘号码。

我知道这是我的代码或其他一些库代码中的错误的结果。我希望将其确定下来。但是,正常的“垃圾”值不能这样。当我谷歌时,我看到一些与编程无关的页面,这表明这个数字是在互联网历史上生成的(所以这不是我的猫在做的)。简而言之,我试图弄清楚,如何首先创建这个数字,比如当您看到 INT_MAX + 1 时,如果您有足够的经验,您可以识别它(-2137483648 任何人?)。

【问题讨论】:

  • @KorayBalci:你能复制一下吗?关闭是因为真的没有确定的答案,所以剩下的只是猜测。
  • @SLC 和 Will,我不知道我是否不够清楚,这可能是错误的结果,很可能是溢出。我将尝试重现和调试。但是,您不能告诉我这根本就是一个随机数,一个 1 后跟 16 个 8 吗?它应该是错误的副作用,但我很好奇它是如何产生的。只用谷歌搜索这个数字,有一些奇怪的事件,可能是类似错误的结果(他们的作者可能甚至没有意识到这个问题)。或者,我只是为了好玩而发布一个尴尬的数字,但这不是普通的随机数。希望我很清楚。
  • Tester 也是一个客户,既不熟练也不有趣。她不知何故有这个过程的视频,不过我下周可以看到它。该应用程序处于早期测试阶段,因此可能是一个尴尬的错误。
  • 滑块绑定到双精度。
  • 版主能否站出来告诉我他/她为什么删除了我的评论?我完全可以删除正在讨论为什么这个问题被关闭为不具建设性(并重新打开并再次关闭)的 cmets。但是我的第一条评论完全是关于这个主题的,告诉 8s 可能对应于 nibbles,因此有 16 个。在我们讨论的时候,让我给你另一个删除这个的理由:这个问题不是关于 .NET 框架中的错误和使用 XAML 作为序列化等。它只是关于“双重”,如果它也是为您本地化。

标签: c# .net wpf xaml


【解决方案1】:

假设开头的 1 是占位符 - 将双精度显示为字符串时出错。

我们有 16 个 8。 C# 中的 double 类型具有最多 16 个字节的精度。这可能表明滑块显示正在尝试显示某种类型的垃圾双精度值 8888888888888888,或 0x1000100010001000100010001000100010001000100010001000100010001000。

可能是测试人员导致 double 的值变成了某种 NaN 值。 (可能NaN是这样显示的)那肯定能解释字符串的长度了。

另外,由于滑块类显示的限制只显示个数字,它可能应该读取 1x8888888888888888。垃圾进,垃圾出?

嗯,这是我的猜测。

【讨论】:

  • 感谢您的努力,我会考虑的,您可能已经成功了。现在问题再次关闭。在所有这些支持和讨论之后,有些人刚刚代表我们和其他所有人做出了决定……感谢官员们保护人们免受非常狭窄的情况的影响。让我们一起讨论如何在 iPhone 中播放声音。
猜你喜欢
  • 2013-06-05
  • 2013-07-14
  • 2014-12-08
  • 1970-01-01
  • 1970-01-01
  • 2012-09-28
  • 1970-01-01
  • 1970-01-01
  • 2012-09-03
相关资源
最近更新 更多