在文本框 VB.Net 中格式化和计算数字

Posted

技术标签:

【中文标题】在文本框 VB.Net 中格式化和计算数字【英文标题】:Formatting and Computing Numbers in Textbox VB.Net 【发布时间】:2016-05-17 06:46:51 【问题描述】:

大家好,下午好。 我希望有人能帮助我解决我的问题。

我有 3 个文本框,它们是:

GrandTotal.Text
VatAmount.Text
TotalAmount.Text

和 1 NumericUpdown1.Value

这是场景,随着系统的运行,有一个代码将触发并将一个数字值放入GrandTotal.Text,然后,用户将按下NumericUpdown1.Value。用户每按一次,就会触发一次计算,并在TotalAmount.TextVatAmount.Text中显示一个数值

为了更具体,它就像一个包含增值税的计算表格。例如。

Grandtotal.text = 2000

如果我按下 NumericUpDown 到 + 1

VatAmount.Text = 20 和 TotalAmount.Text = 2020

我希望你明白我的意思

这是我的代码:

Private Sub NumericUpDown1_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NumericUpDown1.ValueChanged
VatAmount.Text = Val(Grandtotal.text) * NumericUpDown1.Value * 0.01
End Sub



Private Sub VatAmount_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles VatAmount.TextChanged
        TotalAmount.Text = Val(VatAmount.Text) + Val(TextBox14.Text)
    End Sub

现在我已经完成解释了,这是我的问题。

如何在文本框上加上逗号并计算它?我的教授问他想在要输入的数字上加逗号吗?无需从字面上输入逗号。当值大于 3 位时自动放入

如何将逗号放在文本框中并使用 NumericUpdown 进行计算?

TYSM

【问题讨论】:

A TextBox 仅显示 String。如果您希望TextBox 显示带有逗号的String,则在显示之前将逗号放入String。如果您不知道如何连接多个子字符串,那么我建议您查看您的笔记或在线查看初学者教程,因为这是一个非常基本的概念。 你试过了吗? ***.com/a/19999643/6144259 这是我的代码 Sir ` Dim dblValue As Double = TextBox14.Text TextBox14.Text = dblValue.ToString("N", CultureInfo.InvariantCulture)` 我把它放在 Textchange 但是当我输入编号文本框不接受 0 你错过了toString()的第一个参数中的0。它应该是“N0”,而不仅仅是“N” 【参考方案1】:

这大致就是你需要的:

Private Sub GrandTotal_TextChanged(sender As Object, e As EventArgs) Handles GrandTotal.TextChanged
    Dim input As Double = Double.Parse(GrandTotal.Text)
    Dim inputStringWithCommas As String = input.ToString("N0", CultureInfo.InvariantCulture)
    GrandTotal.Text = inputStringWithCommas

    Dim vat As Double = Double.Parse(GrandTotal.Text) * NumericUpDown1.Value * 0.01
    VatAmount.Text = vat.ToString()
    TotalAmount.Text = (Double.Parse(GrandTotal.Text) + vat).ToString("N0", CultureInfo.InvariantCulture)
End Sub

它与您拥有的类似,因此您应该能够使其也适用于 NumericUpDown 事件。

【讨论】:

TYSM 再次,先生,Ahmm 先生,我有一个小问题,我现在有将列中的数字相加的代码,但那里有一个小数点,例如 2,200.50,总数正在四舍五入。我怎样才能防止四舍五入。 如果 .50 不相关,那么有几种方法可以摆脱它。在将其放回文本之前,您可以转换为整数或对总数执行截断。或者,您可以在将文本分配给文本框的值之前对文本使用字符串拆分..

以上是关于在文本框 VB.Net 中格式化和计算数字的主要内容,如果未能解决你的问题,请参考以下文章

VB.NET操作SQL SERVER 2008数据库,想把文本框中输入的字符串转化为数字进行数据库的更新,却一直失败

在文本框中显示逗号 VB.net

VB.net 转换为十进制(放置顺序)

在 vb.net 的文本框中显示 datagridview 单元格数据

在文本框中插入新行VB.NET版C#和JavaScript

如何在 vb.net 中将 datagridview 单元格样式从默认文本框更改为组合框?