У меня есть необходимость форматировать десятичное число как валюту, но я не хочу, чтобы какое-либо округление происходило в процессе.Формат валюты без округления
Например (пример культуры EN-US)
Dim money = 1234.556789D
money.ToString("C") ' Yields $1,234.56 (notice the rounding & truncating)
money.ToString("C99") ' Yields $1,234.556789000000000000....0 -- close but not perfect, those trailing zeros are unwanted.
' I want something that would result in this...
money.ToString("??") ' Yields $1,234.56789
' likewise....
money = 0.1D
money.ToString("??") ' Yields $0.10 (notice that it at least matches the culture's currency format -- two decimal places)
Предполагая, что все пользователи данного приложения будут использовать правила en_US я мог бы сделать это «??» быть чем-то жестко закодированным, как «$ #, ## 0.00 ############################################## ############################ "- но это приводит к отторжению желудка. Есть ли встроенный способ для выполнения того, что мне нужно?
Я просмотрел справочную документацию около 20 минут и ничего не нашел. Сожалею. – Greg
Я ценю ваше время Грег. Извините, что вы оставили меня (и меня) с пустыми руками. Я полагаю, что это не очень «нормальный», чтобы иметь такую потребность, что означало бы, что структура не будет естественным образом заниматься этой функцией. Ну, как уже было сказано ниже, я закончил свое собственное решение до тех пор, пока Microsoft не подумает, что это будет потрясающе/полезно, чтобы испечь прямо в рамки;) – ckittel