c# - IronPython/C# float 据比较

标签 c# python types ironpython

我们有使用 Prism 框架的基于 WPF 的应用程序。我们嵌入了 IronPython 并使用 Python 单元测试框架来自动化我们的应用程序 GUI 测试。

效果非常好。我们在比较两个 float 时遇到困难。

示例C#

class MyClass
{
   public object Value { get; set;}
   public MyClass()
   {
        Value = (float) 12.345;
   } 
}

在 IronPython 中,当我将 MyClass 实例的 Value 属性与 python 浮点值(12.345)进行比较时,它说它不等于

Python语句引发断言错误

self.assertEqual(myClassInstance.Value, 12.345)

这个Python语句工作正常。

self.assertEqual(float(myClassInstance.Value.ToString()), 12.345) 

当我检查 type(myClassInstance.Value) 的类型时,它在 Python 中返回 Single,而 type(12.345) 返回 float。如何在不进行显式转换的情况下处理 C# float 与 Python 的比较?

最佳答案

C# 中的

12.345 是 double ,除非您显式使用 12.345f

关于c# - IronPython/C# float 据比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4560066/

相关文章:

c# - 单元测试在 Web 应用程序使用的类库中使用配置管理器的方法

c# - 无法使用 IP 地址访问 ASP.NET Web API

c# - C# 中有哪些良好的编程实践可以使代码更加不言自明?

python - 如何读取一些文件数据并将其写入另一个文件?

c# - 如何检查 C# 中的两个值是否相等? (给定任何类型的值)

c# - 在 C# 中将浮点值格式化为百分比不起作用

python - 在python中分割数字后的字符串

python - 将新的随机列表分配给嵌套字典会将最后一次看到的列表分配给所有

c++ - 可以将 std::numeric_limits<T> 专门用于用户定义的类数类吗?

date - red/rebol : Subtracting dates returns days, 我该如何改变它?