C # Сравнение десятичных типов в виде строки - PullRequest
0 голосов
/ 08 июня 2011

Я пишу систему регистрации для нашего сайта, и она просматривает изменения в сущностях, чтобы узнать, нужно ли их регистрировать. У меня постоянно возникает проблема, когда версия сущности в базе данных отображает десятичные числа (в строковом формате) как «132.0000», а текущая сущность имеет значение «132» без десятичных знаков. Есть ли способ, которым я могу заставить его удалить ".0000" из одного или добавить его к другому?

Ответы [ 6 ]

2 голосов
/ 08 июня 2011

Хм, просто разберите значение из базы данных в десятичную и сравните его с уже имеющейся десятичной дробью?

1 голос
/ 08 июня 2011

Вы можете попробовать:

if(132 == Convert.ToDecimal("132.0000")
{
    //Do Stuff
}

Заменить 132 и "132.0000" соответствующими значениями.

Также, если вы хотите удалить десятичную часть "132.0000", вы можетеделать:

string dec = "132.0000";

dec = dec.Substring(0,dec.IndexOf("."));
1 голос
/ 08 июня 2011

Преобразуйте запись обратно в десятичную, я бы сказал.

0 голосов
/ 08 июня 2011

Вы можете использовать строку форматирования: F4 xxx.ToString ( "F4")

0 голосов
/ 08 июня 2011

При условии, что все сравнения являются числовыми, вы должны найти сходство между ними. В своем посте вы уже предоставили ответ. Вам нужно целое число, а не число с плавающей точкой. Приведите обе строки к одному из целочисленных типов и сравните.

0 голосов
/ 08 июня 2011

Если вы всегда хотите удалить десятичную дробь, почему бы не привести объект к int, а затем сделать из него строку?

...