Как мне сделать, чтобы мои проценты имели 2 десятичных знака? - PullRequest
0 голосов
/ 04 октября 2018

Я посмотрел другие посты об этом, но я просто не могу обдумать это и хотел спросить конкретно о моем сценарии.Я написал консольное приложение для Visual Basic и пытаюсь получить в моих процентах два десятичных знака, поскольку они просто округляются до ближайшего целого числа.Вот код:

Console.Write("Enter the percentage you want to work out: ")
Dim Percentage As Integer
Percentage = Console.ReadLine()

Console.Write("What would you like to work out " & Percentage & "% of? ")
Dim Number As Integer
Number = Console.ReadLine()

Dim PercentageNumberResult As Integer
PercentageNumberResult = Number / 100 * Percentage

Console.Write(Number & " ÷ 100 × " & Percentage & " = " & PercentageNumberResult)
Console.ReadLine()

Любая помощь будет оценена, спасибо!

Ответы [ 2 ]

0 голосов
/ 04 октября 2018

Если вы хотите преобразовать число в String, вы набираете ToString на этот номер.Если вам нужен определенный формат, вы передаете соответствующий спецификатор формата в качестве аргумента при вызове ToString.Вы должны прочитать соответствующую документацию, чтобы узнать все возможные спецификаторы формата.

В этом случае вы отображаете число в процентах, используя спецификатор «p» или «P», и вы можете добавить число, чтобы указатьколичество знаков после запятой.Например,

Dim x = 13
Dim y = 1000
Dim z = x / y
Dim s = z.ToString("P2")

После выполнения этого кода s будет содержать «1,30%».

Если вы на самом деле не хотите использовать символ «%» в выводе, вы можете умножитьна 100 и использовать другой спецификатор формата, например

Dim x = 13
Dim y = 1000
Dim z = 100 * x / y
Dim s = z.ToString("N2")

После выполнения этого кода s будет содержать «1,30».

0 голосов
/ 04 октября 2018

Проблема связана с тем, что PercentageNumberResult является целым числом.

Сделайте PercentageNumberResult двойным:

    Dim PercentageNumberResult As Double
    PercentageNumberResult = Number / 100 * Percentage

Затем вы можете использовать Math.Round, если необходимо.Также вам следует включить Option Strict, это поможет решить проблему.

...