如何强制c#binary int division返回double?

Way*_*yne 5 c# int dsl casting division

如何强制加倍x = 3/2; 在没有D后缀或铸造的情况下返回1.5 in x?是否有任何类型的操作员过载可以完成?还是一些编译器选项?

令人惊讶的是,由于以下原因,添加铸件或后缀并不是那么简单:

业务用户需要编写和调试自己的公式.目前,C#正在被用作DSL(领域特定语言),因为这些用户不是计算机科学工程师.所以他们所知道的是如何编辑和创建几种类来保存他们的"业务规则",这些规则通常只是数学公式.

但他们总是假设双x = 3/2; 将返回x = 1.5但是在C#中返回1.

A.他们总是忘记这一点,浪费时间调试,打电话给我寻求支持,我们解决它.B.他们认为这非常丑陋并且损害了他们的业务规则的可读性.

如您所知,DSL需要更像自然语言.

是.我们计划转移到Boo并基于它建立一个DSL,但这是在未来.

是否有一个简单的解决方案,使双x = 3/2; 通过类外部的东西返回1.5,这样对用户来说是不可见的?

谢谢!韦恩

Anz*_*rio 5

不,没有可以使3 / 2回报1.5的解决方案.

考虑到约束的唯一解决方法是阻止用户在公式中使用文字.鼓励他们使用常数.或者,如果他们真的需要使用文字,鼓励他们使用带小数点的文字.