十进制计算

时间:2012-07-05 11:40:30

标签: c# .net razor

我有一个输入信息的表格,以及一个部分的下拉框,即男性或女性。 (这取决于1.23或1.04的价值)我现在已经工作了,感谢这里的精彩思想!但这些数字的计算仍然存在问题。

@{
  var total = 0m;
  var totalMessage = "";

    if (IsPost)
    {
        var age = Request["frmage"].AsInt(0);
        var weight = Request["frmweight"].AsDecimal();
        var SerCre = Request["frmSerCre"].AsDecimal();
        var sexfactor = Request["frmGender"];
        var sexValue = sexfactor == "M" ? 1.23 : 1.04;

        total = Convert.ToDecimal ((((140 - age)*weight)* sexValue )/SerCre) ;

        totalMessage = "Calculated creatinine clearance (ml/min)= " + total.ToString("0.00")+ sexValue ;
    }
}

<form method="post">
<p>
    <label for="text1">Age:</label>
    <input type="text" name="frmAge" size="3" />Years
</p>
<p>
    <label for="text2">Weight:</label>
    <input type="text" name="frmWeight" />in Kg (1st = 6.35kg)
</p>
<p>
    <label for="text3">Serum Creatinine:</label>
    <input type="text" name="frmSerCre" />
    μmol/L
</p>
<p>
    <label for="text4">Gender:</label>
    <select name="frmGender" id="select">
        <option value="M">Male</option>
        <option value="F">Female</option>
    </select>
</p>
<p>
    <input type="submit" value="Calculate" /></p>
</form>
<p>@totalMessage</p>

我是否需要转换小数答案,以便代码可以将其视为小数?即使它们已经存在!

2 个答案:

答案 0 :(得分:1)

最好的方法是使用decimal显式声明'sexValue'变量。例:     十进制sexValue = sexfactor ==“M”? 1.23M:1.04M; 并且还指定M(百万),因此它将确定它是十进制值。我只在需要时才使用var,因为声明变量显然使代码至少更具人性化。

答案 1 :(得分:0)

var sexValue = sexfactor == "M" ? 1.23 : 1.04;

应该是:

var sexValue = sexfactor == "M" ? 1.23m : 1.04m;

两个值之后的'm'表明你正在处理小数。

===========================================

这是我的版本:

@{
    ViewBag.Title = "TestButton";


    var totalMessage = "";
    if (IsPost)
    {
        var age = Request["frmage"].AsInt();
        var weight = Request["frmweight"].AsDecimal();
        var SerCre = Request["frmSerCre"].AsDecimal();
        var sexfactor = Request["frmGender"];

        var sexValue = sexfactor == "M" ? 1.23m : 1.04m;

        var total = Convert.ToDecimal((((140 - age) * weight) * sexValue) / SerCre);
        totalMessage = "Calculated creatinine clearance (ml/min)= " + (total + sexValue);
    }
}

<form method="post">
<p>
    <label for="text1">Age:</label>
    <input type="text" name="frmAge" size="3" />Years
</p>
<p>
    <label for="text2">Weight:</label>
    <input type="text" name="frmWeight" />in Kg (1st = 6.35kg)
</p>
<p>
    <label for="text3">Serum Creatinine:</label>
    <input type="text" name="frmSerCre" />
    μmol/L
</p>
<p>
    <label for="text4">Gender:</label>
    <select name="frmGender" id="select">
        <option value="M">Male</option>
        <option value="F">Female</option>
    </select>
</p>
<p>
    <input type="submit" value="Calculate" /></p>
</form>
<p>@totalMessage</p>