问题列表 - 第33652页

C++/C#与float和double的区别

我们正在将C++数学库转换为C#.该库混合使用浮点数和双精度数(有时在它们之间进行转换)我们正在尝试做同样的事情,以便在C#中获得与C++中完全相同的结果,但事实证明这是非常困难的,如果不是不可能的话.

我认为问题是以下一个或多个问题,但我不是专家:

  1. 将浮点数转换为double和double转换为浮点数会导致不可预测的结果,并在C++和C#中以不同方式完成

  2. C++和C#处理浮点精度的方式不同,它们不能相互模仿

  3. .NET中有一个设置可以使它像C++一样运行,但我找不到它(都是32位)

有人可以向我解释可能存在的问题,也许可以将我与微软的一些权威文档联系起来,我可以用来帮助解释这种情况以及产生差异的原因吗?

编辑
我们使用的是VC6和.NET4.0

由于NDA的原因,我不能举出计算的例子,但我可以为差异显示一些数字......可能它们本身很无用:

 8.085004000000000 (C#) vs. 
 8.084980000000000 (C++)    

 8.848165000000000 (C#) vs. 
 8.848170000000000 (C++)   

 0.015263214111328 (C#) vs. 
 0.015263900756836 (C++)  
Run Code Online (Sandbox Code Playgroud)

应该指出的是,这些数字包括复杂的问题.这些是计算结果.

c# c++ floating-point double

7
推荐指数
1
解决办法
6861
查看次数

打破了几天的构建

我最近向同事发送了一封电子邮件,说明我需要在共享的ClearCase视图中进行一些更改,这意味着我们的项目将在一天或两天内处于不可编译的状态.

一个人抱怨这个.我该怎么做才能阻止他的抱怨?

clearcase build

1
推荐指数
1
解决办法
238
查看次数

填充Db的最快方法

我有一个excel电子表格,其中的产品和类别具有多对多的关系,我需要使用它来填充数据库.我正在寻找一种快速输入此数据的方法,并让连接表具有所有正确的信息.我有phpmyadmin但它似乎有点慢,除非有一个捷径.我想的另一种方法是编写一些我可以复制和粘贴的查询,但是让连接表变得正确可能更具挑战性.除非有人能想到我可以创建产品和类别并具有连接连接的查询.

产品

* PRODUCT_ID (primary key)
* PRODUCT_NAME
Run Code Online (Sandbox Code Playgroud)

类别

* CATEGORY_ID (primary key)
* CATEGORY_NAME
Run Code Online (Sandbox Code Playgroud)

PRODUCT_CATEGORIES_MAP

* PRODUCT_ID (primary key, foreign key to PRODUCTS)
* CATEGORY_ID (primary key, foreign key to CATEGORIES)
* QUANTITY
Run Code Online (Sandbox Code Playgroud)

mysql sql database database-design

5
推荐指数
1
解决办法
2117
查看次数

规格模式,Func <T,bool>谓词和管道和过滤器的比较

我正在做一些研发工作,因此正在研究设计模式.我最近一直在阅读规范模式,并参考了这篇伟大的文章.

我对代码的简洁性和清洁度很感兴趣,但我开始比较使用其他技术实现相同的清洁度.

考虑以下服务层的接口合同:

public interface IFooDataService
{
   ICollection<Foo> GetFoosBySpecification(Specification<Foo> specification);
   ICollection<Foo> GetFooByPredicate(Func<Foo,bool> predicate);
   ICollection<Foo> GetFooBySearchArgs(FooSearchArgs searchArgs);
}
Run Code Online (Sandbox Code Playgroud)

所以,一些初步要点:

  • 这三个都返回了Foo对象的集合
  • 这三个人只有一个论点
  • 规范方法限制对特定要求的访问
  • 谓词方法基本没有限制
  • 搜索args方法限制对特定要求的访问

现在,进入实施:

public ICollection<Foo> GetFoosBySpecification(Specification<Foo> specification)
{
    return fooDataRepository
            .Find()
            .Where(f => specification.IsSatisfiedBy(f))
            .ToList();
}

public ICollection<Foo> GetFooByPredicate(Func<Foo, bool> predicate)
{
    return fooDataRepository
            .Find()
            .Where(predicate)
            .ToList();
}

public ICollection<Foo> GetFooBySearchArgs(FooSearchArgs searchArgs)
{
    return fooDataRepository
            .Find()
            .WhereMeetsSearchCriteria(searchArgs)
            .ToList();
}
Run Code Online (Sandbox Code Playgroud)

实施要点:

  • 这三个都非常简单的实现(一行链式代码)
  • 规范和搜索Args过滤在外部实施.
  • 搜索args方法只是使用IEnumerable扩展方法来检查args

那么,话虽如此,在什么条件下你会使用上述3种技术之一?

我对规范模式的看法:

  • 很好,它将业务/域要求隔离成可重用的组件
  • 非常容易阅读,使代码说英语
  • 涉及一些代码(接口,抽象类).如果我要使用它,我会将抽象放在一个通用的程序集中(所以我的解决方案中没有一堆静态文件).
  • 仅通过更改规范而非服务层来轻松更改要求.
  • 域逻辑的最高可测试性(规范)

我对扩展方法(管道和过滤器)的看法:

  • 逻辑上"重量级",但仍然导致相同的简单性.
  • 将查询逻辑从服务层隔离到静态方法
  • 仍然需要排序的"反射"(检查提供的搜索参数和构建查询)
  • 允许您首先编写体系结构(存储库,服务层),而不考虑特定的业务需求(在某些情况下很方便)

我对谓词方法的看法:

  • 可以在需要对查询进行粗粒度控制的地方使用. …

architecture extension-methods design-patterns specification-pattern pipes-filters

7
推荐指数
1
解决办法
1042
查看次数

使用js从div获取原始HTML?

我正在一个用户可以创建和保存自己的HTML表单的网站上工作.我没有在数据库中逐个插入表单元素和ID,而是考虑使用js(最好是jquery)来获取表单的HTML(代码源格式)并通过mysql将其插入文本行.

例如,我在div中有一个表单

<div class="new_form">
<form>
Your Name:
<input type="text" name="something" />
About You:
<textarea name=about_you></textarea>
</form>
</div>
Run Code Online (Sandbox Code Playgroud)

使用js是否可以在"new_form"div中获取原始HTML?

javascript jquery

3
推荐指数
1
解决办法
1万
查看次数

STL名称为"map"函数编程函数

我希望能够写出类似的东西

char f(char);
vector<char> bar;
vector<char> foo = map(f, bar);
Run Code Online (Sandbox Code Playgroud)

transform函数似乎相似,但它不会自动生成结果集合的大小.

c++ map-function

31
推荐指数
2
解决办法
9340
查看次数

PHP三元运算符澄清

我经常使用三元运算符,但是我没有在文档中找到任何关于这个的东西,我一直想知道它.

以下是一个可能的示例:

echo ($something->message ? $something->message : 'no message');
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,如果$ something-> message是正确的,我们返回$ something-> message,但为什么要写两次呢?有没有办法做这样的事情:

echo ($something->message ? this : 'no message');
Run Code Online (Sandbox Code Playgroud)

现在,我不精通编程理论,所以它可能有一个原因,前者不能用的东西被引用 "本",但为什么不呢?这不会流水线使用三元运算符吗?对于像我的例子这样的东西,这是非常没用的,但让我们说它是

echo (function(another_function($variable)) ? function(another_function($variable)) : 'false');
Run Code Online (Sandbox Code Playgroud)

我无法找到任何办法,所以我认为这是不可能的,如果我错了请通知我,否则:为什么不呢?为什么这不可能,技术原因是什么,还是只是从未发生过的事情?我应该将其声明为变量然后针对该变量进行测试吗?

php operators ternary-operator

11
推荐指数
1
解决办法
631
查看次数

使用两个输入来解析匿名函数

我有以下功能:

Eq = @(x1, x2) [x1-6, x2+3];
fsolve(Eq, [4 1])
Run Code Online (Sandbox Code Playgroud)

但是得到以下错误:

??? Input argument "x2" is undefined.

Error in ==> @(x1,x2)[x1-6,x2+3]


Error in ==> fsolve at 193
    fuser = feval(funfcn{3},x,varargin{:});

Error in ==> Untitled at 6
fsolve(Eq, [4, 1])
Run Code Online (Sandbox Code Playgroud)

当我将功能更改为一个输入功能时,它可以正常工作.有谁知道这里发生了什么?

matlab

4
推荐指数
1
解决办法
1万
查看次数

Lua:减去十进制数不会返回正确的精度

我正在使用Lua 5.1

print(10.08 - 10.07)
Run Code Online (Sandbox Code Playgroud)

而不是打印0.01,上面打印0.0099999999999998.

知道如何从这个减法中获得0.01吗?

lua

4
推荐指数
1
解决办法
2263
查看次数

获取WCF的客户端IP地址,后期操作

我试图通过以下链接确定客户端的IP地址:http://www.danrigsby.com/blog/index.php/2008/05/21/get-the-clients-address-in-wcf/

在.Net 3.0中,没有可靠的方法来获取连接到WCF服务的客户端的地址.在.Net 3.5中引入了一个名为RemoteEndpointMessageProperty的新属性.此属性为您提供客户端连接进入服务的IP地址和端口.获取这些信息非常简单.只需通过RemoteEndpointMessageProperty.Name从当前OperationContext的IncomingMessageProperties中提取它,然后访问Address和Port属性.

> [ServiceContract] public interface IMyService {
>     [OperationContract]
>     string GetAddressAsString(); }
> 
> public class MyService : IMyService {
>     public string GetAddressAsString()
>     {
>         RemoteEndpointMessageProperty clientEndpoint =
>             OperationContext.Current.IncomingMessageProperties[
>             RemoteEndpointMessageProperty.Name] as RemoteEndpointMessageProperty;
> 
>         return String.Format(
>             "{0}:{1}",
>             clientEndpoint.Address, clientEndpoint.Port);
>     } } 
Run Code Online (Sandbox Code Playgroud)

注意事项:

  1. 此属性仅适用于http和tcp传输.在所有其他传输上,例如MSMQ和NamedPipes,此属性将不可用.
  2. 地址和端口由服务计算机的套接字或http.sys报告.因此,如果客户端通过VPN或其他修改地址的代理进入,则将表示该新地址而不是客户端的本地地址.这是可取和重要的,因为这是服务看到客户端的地址和端口,而不是客户端所看到的.这也意味着可能会有一些欺骗行为.客户端或服务器之间的某个客户端可能会欺骗地址.因此,除非添加一些其他自定义检查机制,否则不要使用地址或端口进行任何安全性决策.
  3. 如果您在服务上使用双工,那么不仅服务会为客户端填充此属性,而且客户端还将为该服务的每次调用填充此属性.

我有WebInvoke/Post和WebGet的operationContracts.当客户端请求是WebGet时,代码有效.但是当客户端请求是WebInvoke时,我将获得WCF主机IP.有解决方案吗 谢谢.

这是界面

[OperationContract]
[WebGet(UriTemplate = RestTemplate.hello_get)]
Stream hello_get();

[OperationContract]
[WebInvoke(Method = "POST", UriTemplate = RestTemplate.hello_post)]
Stream hello_post();

// Code for …
Run Code Online (Sandbox Code Playgroud)

wcf client ip-address webinvoke

12
推荐指数
1
解决办法
8311
查看次数