أثناء عملية التطوير ، غالبًا ما نواجه تنسيقات تحتاج إلى تعديلها ، مثل الحفاظ على المكانين العشريين بعد النقطة العشرية ، وما إلى ذلك. كما أن الطريقة شائعة جدًا ، يرجى ملاحظة ما يلي.
الأول هو استخدام الرياضيات
var Original = 28.453
1) // جولة "أصلية" إلى اثنين من العشرين
var result = math.round (الأصلي*100)/100 ؛ // إرجاع 28.45
2) // الجولة "الأصلية" إلى 1 عشرية
var result = math.round (الأصلي*10)/10 ؛ // إرجاع 28.5
يمكن للنوع الثاني ، JS1.5 أو أعلى استخدام tofixed (x) لتحديد الرقم لاعتراض موضع x بعد النقطة العشرية.
3) // جولة "أصلية" إلى اثنين من العشرين
var result = Original.tofixed (2) ؛ // إرجاع 28.45
4) // الجولة "الأصلية" إلى 1 عشرية
var result = Original.tofixed (1) ؛ // إرجاع 28.5
الطريقتان أعلاه هما الأكثر شيوعًا ، لكنهما لا يمكنهما تلبية بعض المتطلبات الخاصة. على سبيل المثال ، الحفاظ على الأماكن العشرية بعد النقطة العشرية. إذا كنت أقل من رقمين ، فسوف تعوض عن الأصفار. في هذا الوقت ، هناك طريقة ثالثة.
النوع الثالث هو وظيفة التحويل. يأتي هذا الرمز من منتدى أجنبي.
نسخة الكود كما يلي:
وظيفة مستديرة (رقم ، عشرية) {
var newstring ؛ // الرقم المستدير الجديد
العشرية = العدد (العشرية) ؛
إذا (عشرية <1) {
newstring = (Math.Round (number)). toString () ؛
} آخر {
var numString = number.toString () ؛
if (numstring.lastindexof (".") == -1) {// إذا لم تكن هناك نقطة عشرية
numstring += "." ؛ // أعطها واحدة في النهاية
}
var cutoff = numString.lastIndexof (".") + cecimals ؛ // النقطة التي يتم عندها اقتطاع الرقم
var d1 = number (numstring.substring (cutoff ، cutoff+1)) ؛ // قيمة المكان العشري الأخير الذي سننتهي به
var d2 = number (numstring.substring (cutoff+1 ، cutoff+2)) ؛ // العشرية التالية ، بعد آخر نريد
إذا (d2> = 5) {// هل نحتاج إلى التقريب على الإطلاق؟ إذا لم يكن الأمر كذلك ، فسيتم اقتطاع السلسلة
if (d1 == 9 && cutoff> 0) {// إذا كان الرقم الأخير هو 9 ، ابحث عن نقطة قطع جديدة
بينما (cutoff> 0 && (d1 == 9 || isnan (d1))) {
if (d1! = ".") {
قطع -= 1 ؛
d1 = number (numString.SubString (cutoff ، cutoff+1)) ؛
} آخر {
قطع -= 1 ؛
}
}
}
D1 += 1 ؛
}
if (d1 == 10) {
numString = numString.SubString (0 ، numstring.lastindexof (".")) ؛
var roundednum = number (numString) + 1 ؛
Newstring = RoundedNum.ToString () + '.' ؛
} آخر {
NewsTring = numString.SubString (0 ، cutoff) + d1.toString () ؛
}
}
if (newstring.lastindexof (".") == -1) {// افعل ذلك مرة أخرى ، إلى السلسلة الجديدة
Newstring += "." ؛
}
var decs = (newstring.substring (newstring.lastindexof (".")+1)). الطول ؛
لـ (var i = 0 ؛ i <decimals-decs ؛ i ++) newstring+= "0" ؛
// var newnumber = number (Newstring) ؛ // اجعله رقمًا إذا أردت
document.Roundform.RoundedEdivel.value = NewsTring ؛ // إخراج النتيجة إلى حقل النموذج (تغيير لأغراضك)
}
5) // جولة "أصلية" إلى اثنين من العشرين
var result = Original.tofixed (2) ؛ // إرجاع 28.45
6) // الجولة "الأصلية" إلى 1 عشرية
var result = Original.tofixed (1) ؛ // إرجاع 28.5
var الأصلي = 28.4
var result = Original.tofixed (2) ؛ // إرجاع 28.40