ฟังก์ชัน Decimal, Float และ Value
นำไปใช้กับ: แอปพลิเคชัน Canvas Dataverse คอลัมน์สูตร โฟลว์เดสก์ท็อป แอปพลิเคชันที่ขับเคลื่อนด้วยโมเดล Power Pages Power Platform CLI
แปลงสตริงข้อความหรือชนิดอื่นๆ ให้เป็นตัวเลข
คำอธิบาย
หมายเหตุ
Power Apps รองรับเฉพาะฟังก์ชัน Value และส่งคืนค่า Float เราจะเพิ่มการรองรับฟังก์ชัน Decimal และ Float ในเร็วๆ นี้
ใช้ฟังก์ชัน Decimal, Float และ Value เพื่อแปลงสตริงของข้อความที่ประกอบด้วยอักขระตัวเลขให้เป็นค่าตัวเลข ใช้ฟังก์ชันเหล่านี้ เมื่อคุณจำเป็นต้องคำนวณตัวเลขที่ป้อนเข้าไปเป็นข้อความโดยผู้ใช้ ฟังก์ชันเหล่านี้ยังสามารถใช้เพื่อแปลงชนิดอื่นๆ ให้เป็นตัวเลข เช่น วันที่/เวลา และแบบบูลีน
ฟังก์ชัน Value จะส่งกลับชนิดข้อมูลตัวเลขเริ่มต้นสำหรับโฮสต์ Power Fx ที่คุณใช้ ซึ่งโดยปกติจะเป็น Decimal และตัวเลือกที่ดีที่สุดสำหรับสถานการณ์ส่วนใหญ่ ใช้ฟังก์ชัน Decimal และ Float เมื่อคุณต้องการชนิดข้อมูลเฉพาะสำหรับสถานการณ์เฉพาะ เช่น ข้อมูลทางวิทยาศาสตร์ การคำนวณด้วยจำนวนที่มาก สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับการทำงานกับชนิดข้อมูลเหล่านี้ โปรดดู ส่วนตัวเลขของชนิดข้อมูล
ภาษาที่ต่างกันแปล , และ . แตกต่างกันไป โดยค่าเริ่มต้น ข้อความจะถูกแปลเป็นภาษาของผู้ใช้ปัจจุบัน คุณสามารถระบุภาษาที่ใช้ด้วยแท็กภาษา ซึ่งใช้แท็กภาษาเดียวกับที่ส่งกลับโดยฟังก์ชัน Language
โปรดสังเกตรูปแบบของสตริง:
- สตริงอาจขึ้นต้นด้วยสัญลักษณ์สกุลเงินสำหรับภาษาปัจจุบัน สัญลักษณ์สกุลเงินถูกละเว้น สัญลักษณ์สกุลเงินสำหรับภาษาอื่นๆ จะไม่ถูกละเว้น
- สตริงอาจรวมถึงเครื่องหมายเปอร์เซ็นต์ (%) ที่ส่วนท้าย ซึ่งระบุว่าเป็นเปอร์เซ็นต์ ตัวเลขจะถูกหารด้วย 100 ก่อนการส่งกลับ เปอร์เซ็นต์และสัญลักษณ์สกุลเงินไม่สามารถผสมกันได้
- สตริงอาจอยู่ในรูปเครื่องหมายทางวิทยาศาสตร์ โดยที่ 12 x 103 เขียนเป็น "12e3" ได้
หากตัวเลขไม่อยู่ในรูปแบบที่เหมาะสม ฟังก์ชันเหล่านี้จะส่งกลับข้อผิดพลาด
เมื่อต้องการแปลงค่าวันที่และเวลา ใช้ฟังก์ชัน DateValue TimeValue หรือ DateTimeValue
ไวยากรณ์
ทศนิยม( สตริง [, LanguageTag ] )
ลอย( สตริง [, LanguageTag ] )
ค่า( สตริง [, แท็กภาษา ] )
- สตริง - จำเป็น สตริงที่จะแปลงให้เป็นค่าตัวเลข
- LanguageTag - ตัวเลือก แท็กภาษาที่ใช้แยกวิเคราะห์สตริง ถ้าไม่ระบุ จะใช้ภาษาของผู้ใช้ปัจจุบัน
ทศนิยม( ไม่มีการพิมพ์ )
ลอย( ไม่มีการระบุชนิด )
ค่า( ไม่ได้ระบุชนิด )
- ไม่ต้องพิมพ์ - จำเป็น ออบเจ็กต์ที่ไม่ได้ระบุชนิด ซึ่งแสดงถึงตัวเลข ค่าที่ยอมรับได้ขึ้นอยู่กับตัวให้บริการไม่ระบุชนิด สำหรับ JSON ออบเจ็กต์ที่ไม่ได้ระบุชนิดคาดว่าจะเป็นตัวเลข JSON, บูลีน หรือข้อความที่สามารถแปลงเป็นตัวเลขได้ โปรดทราบว่ารูปแบบที่เกี่ยวข้องกับที่ตั้งเป็นข้อพิจารณาที่สำคัญเมื่อสื่อสารกับระบบภายนอก
ตัวอย่าง
ผู้ใช้ที่เรียกใช้สูตรเหล่านี้อยู่ในสหรัฐอเมริกา และเลือกภาษาอังกฤษเป็นภาษาของพวกเขา ฟังก์ชัน Language จะส่งกลับ "en-US" โฮสต์ Power Fx ใช้ Decimal ตามค่าเริ่มต้น
Value และ Decimal
เนื่องจากเราใช้โฮสต์ที่มี Decimal เป็นค่าเริ่มต้น Value และ Decimal จะส่งกลับผลลัพธ์เดียวกัน
สูตร | Description | Result |
---|---|---|
ค่า( "123.456" ) ทศนิยม( "123.456" ) |
ภาษาเริ่มต้นของ "en-US" จะถูกนำมาใช้ ซึ่งใช้มหัพภาคเป็นตัวคั่นทศนิยม | 123.456 (Decimal) |
ค่า( "123.456", "es-ES" ) ทศนิยม( "123.456", "es-ES" ) |
"es-ES" เป็นแท็กภาษาสำหรับภาษาสเปนในประเทศสเปน ในประเทศสเปน มหัพภาคเป็นตัวคั่นหลักพัน | 123456 (Decimal) |
ค่า( "123,456" ) ทศนิยม( "123,456" ) |
ภาษาเริ่มต้น "en-US" จะถูกใช้ ซึ่งใช้เครื่องหมายจุลภาคเป็นตัวคั่นหลักพัน | 123456 (Decimal) |
ค่า( "123,456", "es-ES" ) ทศนิยม( "123,456", "es-ES" ) |
"es-ES" เป็นแท็กภาษาสำหรับภาษาสเปนในประเทศสเปน ในประเทศสเปน เครื่องหมายจุลภาคเป็นตัวคั่นทศนิยม | 123.456 (Decimal) |
มูลค่า( "12.34%" ) ทศนิยม ( "12.34%" ) |
เครื่องหมายเปอร์เซ็นต์ที่ส่วนท้ายของสตริงระบุว่า นี่คือเปอร์เซ็นต์ | 0.1234 (Decimal) |
มูลค่า( "$ 12.34" ) ทศนิยม( "$ 12.34" ) |
สัญลักษณ์สกุลเงินสำหรับภาษาที่ใช้ปัจจุบันจะถูกละเว้น | 12.34 (Decimal) |
ค่า( "24e3" ) ทศนิยม( "24e3" ) |
เครื่องหมายทางวิทยาศาสตร์สำหรับ 24 x 103 | 24000 (Decimal) |
ค่า(จริง) ทศนิยม ( จริง ) |
แปลงแบบบูลีนเป็นตัวเลข 0 สำหรับ false และ 1 สำหรับ true | 1 Decimal |
Float
ฟังก์ชัน Float จะมีผลลัพธ์ใกล้เคียงกับผลลัพธ์ข้างต้นมาก เนื่องจาก 123.456 ไม่สามารถแสดงได้อย่างแม่นยำใน Float ผลลัพธ์จึงเป็นค่าประมาณที่ใกล้เคียง (123.456000000000003069544618484E2) และการคำนวณข้อผิดพลาดในการปัดเศษแบบทบต้นอาจส่งผลให้เกิดผลลัพธ์ที่ไม่คาดคิด ชนิดผลลัพธ์จะเป็น Float แทน
สิ่งที่แตกต่างคือหากใช้ตัวเลขมากขึ้นหรือน้อยลง
สูตร | Description | Result |
---|---|---|
ลอย( 1e100 ) | เนื่องจากสัญพจน์ตัวเลข 1e100 อยู่นอกเหนือช่วง Decimal จึงทำให้เกิดข้อผิดพลาดก่อนที่จะเรียกใช้ฟังก์ชัน Float |
ข้อผิดพลาด (ล้น) |
ทศนิยม ( 1e100 ) | ปัญหาเดียวกันกับฟังก์ชัน Float | ข้อผิดพลาด (ล้น) |
ลอยตัว( "1e100" ) | ตัวเลขในสตริงข้อความอยู่ในช่วงของตัวเลข Float | 1e100 Float |
ทศนิยม( "1e100" ) | ตัวเลขในสตริงข้อความเกินช่วงของตัวเลข Decimal | ข้อผิดพลาด (ล้น) |
ลอย( "10000000000.0000000001" ) | ตัวเลขในสตริงข้อความอยู่ในช่วงของตัวเลข Float อย่างไรก็ตาม ตัวเลขต้องการความแม่นยำมากกว่าที่ Float จะให้ได้และจะถูกตัดทอน | 1 (Float) |
ทศนิยม( "10000000000.0000000001" ) | ตัวเลขในสตริงข้อความอยู่ภายในช่วงและความแม่นยำของตัวเลข Decimal | 10000000000.0000000001 (Decimal) |