После того, как вы перейдете к одному из этих методов, чтобы переименовать ваш пакет, вы можете начать видеть ошибки.
Если / если ваш R.java не создается правильно, вы получите много ошибок в вашем проекте, говоря error: cannot find symbol class R
, а также error: package R does not exist
.
Не забудьте проверить свой манифест приложения xml. Имя пакета манифеста должно совпадать с фактическим именем пакета. Кажется, что R.java генерируется из манифеста приложения и может вызывать эти ошибки, если есть несоответствие.
Не забудьте проверить соответствие атрибутов package
в вашем <manifest package="com.yourcompany.coolapp">
Используйте строку числового формата "R" :
double d = 0.00034101243963859839;
string s = d.ToString("R");
//...
double d2 = double.Parse(s);
if(d == d2)
{
//-- Success
}
Эти R
обозначает "распространение в прямом и обратном направлениях". Из связанного документа:
Этот формат поддерживается только для Единственных и Двойных типов. Спецификатор туда и обратно гарантирует, что числовое значение, преобразованное в строку, будет проанализировано назад в то же числовое значение.
Как в стороне, я подозреваю, что нет никакого способа сохранить те последние две цифры. Существует только такая доступная точность, и я сомневаюсь, что они когда-либо превращают ее в d
во-первых. Но можно удостовериться, что строка, по крайней мере, читает назад, что Вы действительно имеете правильно.
при реальной необходимости в дополнительной точности Вы могли бы попытаться использовать decimal
вместо этого.
Нет. Помимо того факта, что double является двоичным и, следовательно, не подходит для десятичных значений, double имеет максимум 15/16 десятичных цифр (53 бита). десятичное число имеет максимум 28/29 цифр (96 бит), поэтому было бы хорошо использовать его. Если у вас более высокая точность в базе данных, вам нужен собственный класс bignum для C #, ищите реализации в stackoverflow.