c#的内部文本总是零,尽管它有值

本文关键字:内部 文本 | 更新日期: 2023-09-27 18:18:52

这是我的代码

 spTAC.InnerText = ((Tabn / TinBCalls) * 100) + "%";

我调试了那个代码,Tabn是204

TinBCalls是1162

spTAC保持值为0%

为什么吗?我要忘掉这件事了。

(该行之后不执行任何代码)。

<td class="informationTableValue" runat="server" id="spTAC">
                        </td>

c#的内部文本总是零,尽管它有值

您需要确保将一个转换为double

  spTAC.InnerText = ((Tabn / (double)TinBCalls) * 100) + "%";

来自MSDN 7.7.2除法运算符,Visual Studio .NET 2003(很旧,我似乎找不到最近的链接,但自2003年以来该规则没有改变)

Integer division:
    int operator /(int x, int y);
    uint operator /(uint x, uint y);
    long operator /(long x, long y);
    ulong operator /(ulong x, ulong y);

除法将结果舍入到0…

我猜你是想在这里除两个整数吗?在这种情况下,我建议尝试将它们转换为浮点值。

您正在执行整数除法,当Tabn小于TinBCalls时,它将始终返回0。0乘以100仍然会得到0…

您可以更改乘法顺序或强制转换为浮点数据类型,以便除法将产生尾号。

你也可以试试:

spTAC.InnerText = (((double)Tabn / TinBCalls) * 100.0) + "%";