2009-02-23 42 views
1

当我创建使用MS Visual Studio的内置单元测试向导它使用类似下面行创建代码测试:为什么MSTest向导的F后缀是D而不是D?

double number = 0F; 

在C#“F”代表浮动,情况无关,而对于双“d” 。使用“F”后缀而不是“D”会导致精度损失。

如果这是一个错误,我可以在哪里向Microsoft报告?

回答

2

我不明白这可能是什么,但一个错误。在这种情况下完全无害,但仍然是一个错误。您可以使用Connect来报告这种事情。不过,我已经清除了比这更重要的漏洞,所以我不会期望太多的行动。

+0

哦谢谢。我提交了错误https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=417343 – 2009-02-23 22:22:39

-1

如果你使用十进制(M后缀),那么你不必担心它有估计错误或精度损失。

+0

-1:是的,你会得到“不能隐式地将类型'decimal'转换为'double'。存在(你是否缺少演员?)“ – Powerlord 2009-02-23 22:01:09

+0

和你的计算,将永远不会精确到实际测试 – DevelopingChris 2009-02-27 02:03:10

0

如果该值始终为0F,则根本不会丢失任何信息。

一般来说,任何浮点数都可以转换为double而不会损失精度(假设IEEE 754)。

只要测试值不需要将截断表示为浮点数,那么关于正确性就没有问题。最终用户的困惑和想要修改价值时增加的麻烦仍然是一个问题。

相关问题