Я пытаюсь проверить мою функцию VBScript, которая делит входное значение на 1440. Когда я передаю 43.56 в качестве входного параметра, он возвращает мне следующий результат:
0.030250000000000002
пока правильный ответ
0.03025
Что я должен сделать, чтобы он работал правильно как с равномерно разделенными целыми числами, такими как 1440/1440 = 1, так и когда одно значение является десятичным.
В настоящее время моя функция выглядит так:
Function convertMinutesToDays(value)
If IsNumeric(value) And TypeName(value) <> "Boolean" Then
convertMinutesToDays = value / 1440
Else
convertMinutesToDays = 0
End If
End Function
На самом деле, если вы просто поместите Response.Write convertMinutesToDays (43.56), он покажет 0.03025, но мы используем его в методе assert javascript, например:
Call AssertAreEqual(convertMinutesToDays(43.56), 0.03025, "convertMinutesToDays: pass 43.56 should return 0.03025")
код JavaScript:
<script language="JavaScript" runat="server">
function AssertAreEqual(val1, val2, message)
{
var retVal = false;
var divAttributes = "";
var equality = "";
if (val1 === val2)
{
divAttributes = "class=\"unittest assertareequal pass\"";
equality = "=";
retVal = true;
}
else
{
divAttributes = "class=\"unittest assertareequal fail\"";
equality = "!=";
retVal = false;
}
Response.Write("<div " + divAttributes + ">Actual:" + val1 + " " + equality + " " + val2 + ":Expected | " + message + "</div>");
return retVal;
}
</script>
Выход:
Actual:0.030250000000000002 != 0.03025:Expected | convertMinutesToDays: pass 43.56 should return 0.03025
Есть идеи?