سؤال

لدي الرقم 654987. إنه معرف في قاعدة بيانات. أريد تحويلها إلى سلسلة. يجعل double.tostring العادية (القيمة) في شكل علمي ، 6.54987e5. شيء لا أريده.

وظائف التنسيق الأخرى وجدت فحص اللغة الحالية وتضيف الفواصل ذات الألف المناسبة وما شابه. منذ معرف ، لا أستطيع قبول أي تنسيق على الإطلاق.

كيف افعلها؟

تحرير] للتوضيح: أنا أعمل على قاعدة بيانات خاصة تعامل جميع الأعمدة الرقمية على أنها الزوجي. Double هو النوع الوحيد (الرقمي) الذي يمكنني استرداده من قاعدة البيانات.

هل كانت مفيدة؟

المحلول

استخدم طويلًا:

long id = 654987;
String str = Long.toString(id);

نصائح أخرى

استخدم ثابتًا NumberFormat (على وجه التحديد أ DecimalFormat):

double value = getValue();
String str = new DecimalFormat("#").format(value);

بدلاً من ذلك ببساطة int (أو long إذا كان نطاق القيم كبيرًا جدًا):

String str = String.valueOf((long) value);

ولكن مرة أخرى: لماذا لديك قيمة عدد صحيح (أي رقم "كامل") في أ double متغير في المقام الأول؟

إذا كان معرف عدد صحيح في قاعدة البيانات ، فاستخدم عددًا صحيحًا بدلاً من ذلك. ثم سوف تنسيق كصاحب صحيح.

ماذا عن String.valueOf((long)value);

ماذا عن:

Long.toString(value)

أو

new String(value)

كما يمكنك استخدام

double value = getValue();

NumberFormat f = NumberFormat.getInstance();
f.setGroupingUsed(false);

String strVal = f.format(value);

إذا كان ما تقوم بتخزينه هو معرف (أي شيء يستخدم فقط لتحديد كيان آخر ، ليس له قيمة الرقمية الفعلية أهمية) ، فلا ينبغي أن تستخدم مزدوجًا لتخزينه. من شبه المؤكد أن الدقة تفسدك.

إذا لم تسمح قاعدة البيانات الخاصة بك بقيم عدد صحيح ، فيجب عليك تخزين المعرفات كسلاسل. إذا لزم الأمر ، اجعل السلسلة تمثيل سلسلة من عدد صحيح تريد استخدامه. مع الاستخدام المناسب للأصفار الرائدة ، يمكنك جعل الترتيب الأبجدي للسلسلة نفس الترتيب الرقمي للـ INTs.

هذا يجب أن يجعلك حول القضية.

ماذا عن Long.ToString ((طويلة) القيمة)؟

    double d = 56789;
    String s = d+"";
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top