Мы храним суммы денег/валюты в базе данных, например, четыре цифры после десятичной точки: например. 12.8665
Сравнение десятичного ввода пользователя с десятичной суммой C#
Допустим, у меня есть Order
класс в C#, которые имеют два свойства:
decimal TotalAmountDue;
decimal UserInput.
Все суммы на веб-странице, дисплей как totalAmountDue.toFixed(2)
. Это означает, что пользователю отображается 12.87
. Пользователь вводит число 12.87
в виде веб-формы. Когда я сравниваю значение C# UserInput >= TotalAmountDue
, это не возвращает true, потому что в C# не было выполнено преобразование, эквивалентное toFixed
.
Q1. Как это преобразование можно сделать, чтобы я мог сравнить два десятичных знака?
Q2. Является ли это плохая идея хранить 4 цифры после десятичного числа в db, поскольку мы показываем только 2 пользователям?
Спасибо. Эти суммы в основном являются ценами. что означает MidpointRounding.AwayFromZero? – Iffi
Это как обычно округлить. Дополнительную информацию см. На странице https://msdn.microsoft.com/en-us/library/system.midpointrounding(v=vs.110).aspx. –