Выберите только два десятичных знака без округления - PullRequest
0 голосов
/ 25 мая 2018

Я хочу выбрать только два десятичных знака без округления.

$d = 123000.1264
'{0:f2}' -f $d

Результат: 123000,13, но мне нужен результат 123000,12

Любые идеи, чтобы решить эту проблему?

Заранее спасибо!

1 Ответ

0 голосов
/ 25 мая 2018
[Math]::Truncate(123000.1264 * 100) / 100

делает это.

123000.1264 * 100 = 12300012.64
[Math] :: Truncate (12300012.64) = 12300012
12300012/100 = 123000.12

Вы должны использовать тип [десятичный] для чисел, когда вам нужно сохранить точность дробной части, например,

$d = [decimal]123000.1264

, а затем [Math] :: Truncate будет использовать десятичная перегрузка для получения десятичной дроби, а десятичная дробь, деленная на целое число (или двойное число), даст десятичный результат.

Конечно, существует несколько способов интерпретации «вверх»: этоможет означать увеличение значения (3> -5) или увеличение величины (| -5 |> | 3 |).Если вам нужно первое, тогда используйте [Math] :: Floor (который преобразует -1.1 -> -2.0) вместо [Math] :: Truncate (который преобразует -1.1 -> 1.0).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...