答案超过小数点后 2 位后如何显示答案

Posted

技术标签:

【中文标题】答案超过小数点后 2 位后如何显示答案【英文标题】:How to show the answer once the answer is over 2 decimal places 【发布时间】:2013-03-21 05:07:07 【问题描述】:

我有一个计算圆锥体积的 Visual Basic 计算器。

我有两个答案,一个以毫米立方为单位,另一个以米立方为单位(四舍五入到最接近的百分之一(2 个小数位))。但我只想在达到 0.01 或更高时显示米的立方。

这是我的计算代码

Private Sub txtSidea_Leave(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtHeight.Leave, txtRadius.Leave
    'calculate volume cubic mm using V= 1/3 pi R*2*H  
    Const PI As Double = System.Math.PI
    lbAnswerlVolumeMM.Text = (1 / 3 * PI * ((Val(txtRadius.Text) ^ 2) * Val(txtHeight.Text))).ToString("#") + " :Cuibic mm"
    'calculate volume cubic meter using V= 1/3 pi R*2*H / 10^9
    lblAnswerVolumeMetres.Text = ((1 / 3 * PI * ((Val(txtRadius.Text) ^ 2) * Val(txtHeight.Text))) / 10 ^ 9).ToString("#.##") + " :Cubic Metre"
End Sub

一个例子是;高度 50 毫米,半径 30 毫米。这将输出 47124 毫米立方体,这很好。但它没有显示米立方体,所以如果米立方体的答案低于 0.01,我希望它隐藏标签,直到它超过 0.01,然后显示结果。

【问题讨论】:

请分享示例输入和输出 也许检查该值是高于 0.01 还是低于 0.01 并基于此使用不同的计算? 我在想一些类似的事情 Private Sub lblAnswerVolumeMetres(sender As System.Object, e As System.EventArgs) Handles lblAnswerVolumeMetres If lblAnswerVolumeMetres 一个例子是;高度 50 毫米,半径 30 毫米。这将输出 47124 毫米立方体,这很好。但它不显示米立方体,所以如果米立方体的答案低于 0.01,我希望它隐藏标签,直到它超过 0.01,然后显示结果。 【参考方案1】:

试试这个:

Private Sub txtSidea_Leave(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtHeight.Leave, txtRadius.Leave
    'calculate volume cubic mm using V= 1/3 pi R*2*H  
    Const PI As Double = System.Math.PI
    lbAnswerlVolumeMM.Text = (1 / 3 * PI * ((Val(txtRadius.Text) ^ 2) * Val(txtHeight.Text))).ToString("#")
    'calculate volume cubic meter using V= 1/3 pi R*2*H / 10^9
    lblAnswerVolumeMetres.Text = ((1 / 3 * PI * ((Val(txtRadius.Text) ^ 2) * Val(txtHeight.Text))) / 10 ^ 9).ToString("#.##")

    '--Decide which to hide
    If lblAnswerVolumeMetres.Text >= 0.01 then
        lblAnswerVolumeMetres.Visible = True
        lbAnswerlVolumeMM.Visible = False
    Else
        lblAnswerVolumeMetres.Visible = False
        lbAnswerlVolumeMM.Visible = True
    End If
    '--Shift the description to after the decision is made based on the number.
    lblAnswerVolumeMetres.Text &= " :Cubic mm"
    lbAnswerlVolumeMM &= " :Cubic Metre"
End Sub

【讨论】:

它可以工作,但是当我在 txtSidea 中输入我的号码时,我得到了这个错误。从字符串“”到类型“Double”的转换无效。 确保按原样复制代码(即,不要在计算音量答案的顶部添加“cubic”文本。它应该可以工作。如果有效,请标记作为答案。

以上是关于答案超过小数点后 2 位后如何显示答案的主要内容,如果未能解决你的问题,请参考以下文章

如何仅显示小数点后 2 位的值

无法在小数点后仅显示 1 位或空位

sql 里怎么用语句裁断小数点后两位

如何获得小数点后的数字?

尾数和指数 - 带小数的负数(超过 0.5)

信息奥赛一本通 1060:均值