Десятичное округление - PullRequest
0 голосов
/ 05 марта 2019

У меня есть проект, в котором мне нужно округлить десятичную дробь следующим образом:

Если число находится в диапазоне от 12.01 до 12.49, тогда оно должно округляться до 12.00

Есличисло между 12.50 и 12.99, должно округляться до 13.00

Я пробовал функции Math.Abs ​​и Math.Round, но не смог получить точные результаты, как требуется выше.

Ответы [ 3 ]

1 голос
/ 05 марта 2019

Следующий код работает для меня, он округляется до ближайшего целого числа. Так, например, для числа 12.5 оно округляется до 13. Кроме того, вы можете изменить 0 в коде, чтобы изменить столько десятичных разрядов, сколько вы хотели бы округлить.

Dim a As Double = `your number`
Dim rounded As Double = Math.Round(a, 0, MidpointRounding.AwayFromZero)
1 голос
/ 05 марта 2019

Джейкоб прав. Математика. Раунд отлично справляется с работой Откройте новый проект (Winforms) и добавьте текстовое поле, кнопку и метку. Поместите этот код за событием нажатия кнопки.

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
   Label1.Text = Math.Round(CDec(TextBox1.Text))
End Sub

Введите с 12.01 до 12.49 в текстовом поле, и оно округляется до 12, а с 12.51 до 13.49 округляется до 13

0 голосов
/ 06 марта 2019

Как указал banf, добавьте дополнительные параметры в функцию Math.Round

Private Sub Button1_Click (отправитель как объект, e как EventArgs) Обрабатывает Button1.Click Label1.Text = Math.Round (CDec (TextBox1.Text), 0, MidpointRounding.AwayFromZero) End Sub

...