Текстовое поле и форматирование валюты - PullRequest
0 голосов
/ 13 февраля 2020

Я пытаюсь отформатировать два указанных c текстовых поля, чтобы они отображались как Sq. футы (txt.Squareft.Text) и валюта США (txtTotalprice.Text) после выполнения расчетов в Visual Studio 2019 в виде Windows приложения формы и с использованием визуального базового c кода. Я использую. NET framework v4.7.2 и использую Windows 10. То, как он работает сейчас, числа, которые отображаются в текстовых полях, являются просто числами без добавленной Sq. футов в конце и без форматирования валюты. Я также добавлю, что я очень плохо знаком с VB и программированием в целом. Любая помощь или предложения?

Option Explicit On
Option Infer Off

Public Class Form1
    Private Sub btnCalculate_Click(sender As Object, e As EventArgs) Handles btnCalculate.Click
'Variables
        Dim decTotalprice As Decimal
        Dim decLength As Decimal
        Dim decWidth As Decimal
        Dim decPrice As Decimal
        Dim decSquareft As Decimal
        Decimal.TryParse(txtLength.Text, decLength)
        Decimal.TryParse(txtWidth.Text, decWidth)
        Decimal.TryParse(txtPrice.Text, decPrice)
        Decimal.TryParse(txtSquareft.Text, decSquareft)
        txtTotalprice.Text = decTotalprice.ToString("C2")
        txtSquareft.Text = decSquareft.ToString("N2") & " Sq. ft."
' Calculate the square feet and total price
        txtSquareft.Text = txtLength.Text * txtWidth.Text
        txtTotalprice.Text = txtPrice.Text * txtSquareft.Text
End Sub

    Private Sub btnClear_Click(sender As Object, e As EventArgs) Handles btnClear.Click
        ' Clears all the text fields with button click
        txtLength.Clear()
        txtWidth.Clear()
        txtPrice.Clear()
        txtSquareft.Clear()
        txtTotalprice.Clear()
    End Sub

    Private Sub btnExit_Click(sender As Object, e As EventArgs) Handles btnExit.Click
        ' Exits the form
        Me.Close()
    End Sub
End Class

1 Ответ

1 голос
/ 13 февраля 2020

Здесь есть две основные проблемы, и я чувствую, что поднимаю их как минимум десять раз в день. Во-первых, вы пытаетесь написать код, не зная, что этот код должен делать. Вы рассмотрели конечный результат, но не шаги, чтобы добраться туда. Если бы вы сделали это, было бы очевидно, что ваш код не соответствует тому, что должен. Во-вторых, вы явно не отлаживали свой код, и это первое, что должен делать каждый, кто не получает ожидаемого результата. Это также позволит вам увидеть, что ваш код не имеет смысла, ЕСЛИ вы рассмотрели, что каждая строка должна делать, как она это делает.

Если бы это было ручное задание, вы бы получили информацию от Пользователь, выполните расчет, а затем отобразите результат. Это то, что ты здесь делаешь? Нет это не так. Сначала вы получаете пользовательский ввод. Это начало, но вы делаете это неправильно. Как бы то ни было, вы бы заканчивали нулем для любого неверного ввода, но вы просто игнорируете это. Следующее, что вы делаете, это отображаете форматированный вывод, который вы еще даже не рассчитали. Если бы вы отладили, вы бы увидели, что и decTotalprice, и decSquareft равны нулю в этой точке. Наконец, вы выполняете вычисления, но с введенным необработанным текстом вместо уже проанализированных чисел, а затем отображаете результаты в неформатированном виде. В вашем коде даже есть комментарий, в котором говорится, что вы выполняете вычисления ПОСЛЕ того, как вы отобразили форматированный вывод.

Прекратите писать код и подумайте о том, что нужно сделать, чтобы получить желаемый результат. результат. Проанализируйте введенные пользователем данные, выполните расчеты с данными цифр c, а не с непарсированным текстом, затем отобразите эти результаты с форматированием. Как только у вас есть четкое представление о том, что вы должны делать и проверять это вручную, тогда вы можете написать код для реализации этого алгоритма, а не какую-то смутную идею в вашей голове, которая подразумевает конечный результат и ничего более.

Вы, конечно, не единственный человек, который делает эти ошибки, но они элементарные ошибки. Они случаются отчасти из-за плохого обучения в некоторых случаях, но также и потому, что все хотят прыгнуть в часть, которая сексуальна и забавна, то есть написания кода, но они не хотят выполнять сложную, но столь же важную часть учитывая, что на самом деле должен делать код. Когда они не получают ожидаемого результата, они вскидывают руки, даже не пытаясь исправить это. Если вы не пытались понять, что должен делать код, вы не могли бы попытаться заставить его сделать это.

...