【发布时间】:2016-06-30 09:56:58
【问题描述】:
大家好,stackoverflowers,
我在将公式从 classic asp VBscript 转换为 C# .net 时遇到问题
我需要c# 的行为类似于VBScript 的结果
公式是这样的
Dim dTravelHours, result
dTravelHours = 22.7359890666919
result = (CDbl(dTravelHours)*2 + 2)\8
数学上的结果是 5.9331475 但是因为我使用整数除法而不是小数除法 "/" 结果是 5 ,我可以通过简单地将结果类型转换为 int 在 c# 中正确地得到这个结果
但是,如果我使用不同的值:
Dim dTravelHours, result
dTravelHours = 22.7359890666919
result = (CDbl(dTravelHours)*2 + 2.5)\8
数学结果是 5.9956475 vbScript 结果为 6
与 5.9456475 相同,vbscript 结果为 6
如何在 C# 中复制相同的行为?
我已经尝试过使用Math.Floor,Math.Ceiling、Math.Round,但还是不行。
提前感谢您的回答和建议
【问题讨论】:
-
Math.Ceiling(5.9956475) 是 6,这就是你想要的吧?
-
是的,没错,但在 VBScript 中 5.9331475 是 5,因为它使用整数除法,但 5.9956475 是 6,如果我在 C# 中简单地使用 Ceiling,它的结果都是 6,这不是相同的结果与 VBScript 中的那个,
-
所以 5.9331475 应该是 5 而 5.9456475 应该是 6?它的规则是什么?
-
你想要 5 还是 6 ?这应该对您有所帮助:salman-w.blogspot.co.id/2009/10/…
-
是的蒂姆,没错,5.9956475 也是 6,