Mathiudi Ответов: 2

Как округлить десятичные числа от нуля в VB.NET


Я хочу округлить число от 16 714,29 до 17 000. Но каждый раз, когда я использую код ниже, он всегда округляется до 16 714. Может кто-нибудь кому-нибудь помочь.?

Что я уже пробовал:

Try

            Dim myval As Double = TextBox17.Text

            TextBox18.Text = Math.Round(myval, 0, MidpointRounding.AwayFromZero)

        Catch ex As Exception

        End Try

Jochen Arndt

Делим на тысячу, округляем, умножаем на тысячу.

2 Ответов

Рейтинг:
5

Graeme_Grant

Вот еще один:

Public Function Ceiling(ByVal value As Decimal, Optional ByVal nearest As Decimal = 1) As Decimal
	Return (Int(value / nearest) - If((value / nearest - Int(value / nearest) > 0D), -1D, 0D)) * nearest
End Function
Использовать:
Dim newValue = Ceiling(3.14D, 0.5D) ' = 3.5


Рейтинг:
19

OriginalGriff

Попробовать это:

Public Function RoundToLeft(d As Double, digits As Integer) As Double
	Dim rounding As Double = Math.Pow(10.0, digits)
	Return Math.Round(d / rounding, 0, MidpointRounding.AwayFromZero) * rounding
End Function

Если вы это называете:
Console.WriteLine(RoundToLeft(d, 0))  ->  16714
Console.WriteLine(RoundToLeft(d, 1))  ->  16710
Console.WriteLine(RoundToLeft(d, 2))  ->  16700
Console.WriteLine(RoundToLeft(d, 3))  ->  17000
Console.WriteLine(RoundToLeft(d, 4))  ->  20000


Mathiudi

Спасибо, но как вызвать эту функцию одним нажатием кнопки?

OriginalGriff

Ты ведь шутишь, правда?
Это такая же функция, как и любая другая. Он принимает два параметра и возвращает двойной...