1

我有一个枢轴查看器,我添加了一个数字查看器属性。当值都是正数时,它工作正常。当值为负时,我得到一个错误:

网页错误详情

用户代理:Mozilla/4.0(兼容;MSIE 8.0;Windows NT 5.1;Trident/4.0;.NET CLR 2.0.50727;.NET CLR 3.0.4506.2152;.NET CLR 3.5.30729;.NET CLR 1.1.4322;MS- RTC LM 8;InfoPath.2;.NET4.0C;.NET4.0E) 时间戳:2013 年 5 月 23 日星期四 14:20:57 UTC

消息:Silverlight 应用程序 StartIndex 中的未处理错误不能小于零。参数名称: System.String.InternalSubStringWithChecks 处的 startIndex(Int32 startIndex,Int32 长度,布尔 fAlwaysCopy),System.String.Substring(Int32 startIndex,Int32 长度)处 Microsoft.Internal.Pivot.Model.HistogramBucketer.CalculateFormatAndFractions(ICollection 1 numbers, String& formatString, Decimal& divFactor) at Microsoft.Internal.Pivot.ViewModels.RangeFacetCategoryViewModel.CalculateFormatAndFractions(ICollection1 值)在 Microsoft.Internal.Pivot.ViewModels.ViewModelBase`1.SetModel(Object newModel) 在 Microsoft.Internal.Pivot.ViewModels.FilterPaneViewModel.SynchronizeCategories( ) 在 Microsoft.Internal.Pivot.ViewModels.FilterPaneViewModel.b__4() 行:1 字符:1 代码:0

我无法想象我不能有负值。我传递的值非常小(-.00009825 等),但我无法想象这会有所作为。有没有我缺少的设置?谢谢

4

1 回答 1

0

我以为你疯了,直到我自己在一个最小的 PivotViewer 控件中尝试它并得到同样的错误!

经过更多的实验,问题似乎不在于负数,而在于包含四个或五个前导零的尾数(小数部分),具体取决于第一个非零数字的值。

具有四个前导零的值,如 0.00001、-1.00002、2.00003、-3.00004 都会导致您的错误。尾数 0.00005 到 0.00009确实有效,可能是因为值被四舍五入,例如 0.00005 "=" 0.0001。

这里描述了同样的问题:(http://social.msdn.microsoft.com/Forums/en-US/silverlightpivotviewer/thread/03f0e782-f2d8-4c70-86f2-93560a8d6151/

他们的解决方法:将小数四舍五入到四位,你应该没问题。如果你的数据在一个超紧的范围内,你需要在 PivotViewer 中达到那种精确度,我会乘以例如 1000 并以某种方式表明这些值是按比例缩放的。

PS这种行为肯定看起来有问题-我猜神奇的四位小数限制与以下事实有关,即在过滤器面板中拖动数字属性直方图中的滑块时,它会显示指示滑块当前值的文本-到四小数位的精度。也许将它扔到小数点后五位会使它变得繁荣?

于 2013-05-31T02:14:59.653 回答