อะไรคือพารามิเตอร์สำหรับจำนวน Pipe - Angular 2


123

ฉันใช้ท่อตัวเลขด้านล่างเพื่อ จำกัด ตัวเลขเป็นทศนิยมสองตำแหน่ง

{{ exampleNumber | number : '1.2-2' }}

ฉันสงสัยว่าตรรกะเบื้องหลัง '1.2-2' คืออะไร? ฉันได้เล่นกับสิ่งเหล่านี้เพื่อพยายามบรรลุไปป์ที่กรองตำแหน่งทศนิยมเป็นศูนย์ แต่ไม่มีประโยชน์





2
ใช้งานได้กับ Angular 2 เท่านั้น
Lord Darth Vader

คำตอบ:


251

พารามิเตอร์มีไวยากรณ์นี้:

{minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}

ตัวอย่าง'1.2-2'วิธีการของคุณ:

  • ตัวเลขขั้นต่ำ 1 หลักจะแสดงก่อนจุดทศนิยม
  • มันจะแสดงอย่างน้อย 2 หลักหลังจุดทศนิยม
  • แต่ไม่เกิน 2 หลัก

31
สิ่งนี้ยังปัดเศษตัวเลขได้อย่างน่าเสียดายและที่แย่ไปกว่านั้นคือไม่มีคำพูดใด ๆ เกี่ยวกับเรื่องนี้ในเอกสาร
phil294

1
@Blauhirn ฉันมีปัญหาเดียวกันมีวิธีแก้ไขที่ง่ายไหมหรือฉันควรสร้างท่อของตัวเอง?
S. Robijns

3
@ phil294 ฉันรู้ว่าความคิดเห็นของคุณเก่า แต่ตอนนี้มีคำอธิบายเกี่ยวกับการปัดเศษตัวเลข angular.io/api/common/DecimalPipe
Cristiano Bombazar

7

จาก DOCS

จัดรูปแบบตัวเลขเป็นข้อความ การกำหนดขนาดและตัวคั่นกลุ่มและการกำหนดค่าเฉพาะโลแคลอื่น ๆ จะขึ้นอยู่กับโลแคลที่ใช้งานอยู่

SYNTAX:

number_expression | number[:digitInfo[:locale]]

expressionตัวเลขอยู่ที่ไหน:

digitInfo เป็นสตริงที่มีรูปแบบดังต่อไปนี้:

{minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}
  • minIntegerDigits คือจำนวนตัวเลขจำนวนเต็มขั้นต่ำที่จะใช้ค่าดีฟอลต์คือ 1
  • minFractionDigits คือจำนวนหลักขั้นต่ำ
  • หลังเศษ. ค่าดีฟอลต์คือ 0 maxFractionDigits คือจำนวนหลักสูงสุดหลังเศษส่วน ค่าเริ่มต้นคือ 3
  • locale คือสตริงที่กำหนดโลแคลที่จะใช้ (ใช้ LOCALE_ID ปัจจุบันตามค่าเริ่มต้น)

DEMO


7
  1. เกี่ยวกับคำถามแรกของคุณท่อทำงานดังต่อไปนี้:

    numberValue | number: {minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}

    • minIntegerDigits: จำนวนตัวเลขจำนวนเต็มขั้นต่ำที่จะแสดงก่อนจุดทศนิยมกำหนดเป็น 1 โดยค่าเริ่มต้น
    • minFractionDigits: จำนวนเต็มขั้นต่ำที่จะแสดงหลังจุดทศนิยม

    • maxFractionDigits: จำนวนตัวเลขจำนวนเต็มสูงสุดที่จะแสดงหลังจุดทศนิยม

2. เกี่ยวกับคำถามที่สองของคุณให้กรองตำแหน่งทศนิยมเป็นศูนย์ดังนี้:

{{ numberValue | number: '1.0-0' }}

หากต้องการอ่านเพิ่มเติมโปรดดูบล็อกต่อไปนี้


2

'1.0-0' จะให้ทศนิยมเป็นศูนย์เช่นไม่มีทศนิยม เช่น $ 500


ฉันพยายามจัดรูปแบบตัวเลขเช่น 114.5 เพื่อแสดงเป็น 114 แต่เมื่อฉันใช้ '1.0-0' มันจะแสดงเป็น '115' ใครรู้ไหมว่าทำไม?
Karaja

1
เป็นเพราะเชิงมุมปัดเศษค่าและให้ 115 เป็น 114.5
alchi baucha

2
ทำไมต้องโหวตลง? วิธีนี้ใช้ได้ผลและตอบคำถามเกี่ยวกับวิธีกรองทศนิยมให้เป็นศูนย์ ขอบคุณ @alchibaucha แก้ไขปัญหาของฉันได้อย่างแม่นยำ
..
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.