แชร์ผ่าน


ฟังก์ชัน Decimal, Float และ Value

ใช้กับ: แอปพื้นที่ทำงาน 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

ไวยากรณ์

Decimal( String [, LanguageTag ] )
Float( String [, LanguageTag ] )
Value( String [, LanguageTag ] )

  • สตริง - จำเป็น สตริงที่จะแปลงให้เป็นค่าตัวเลข
  • LanguageTag - เลือกได้ แท็กภาษาที่ใช้แยกวิเคราะห์สตริง ถ้าไม่ระบุ จะใช้ภาษาของผู้ใช้ปัจจุบัน

Decimal( Untyped )
Float( Untyped )
Value( Untyped )

  • Untyped - จำเป็น ออบเจ็กต์ไม่ระบุชนิด ที่แสดงถึงตัวเลข ค่าที่ยอมรับได้ขึ้นอยู่กับตัวให้บริการไม่ระบุชนิด สำหรับ JSON ออบเจ็กต์ที่ไม่ได้ระบุชนิดคาดว่าจะเป็นตัวเลข JSON, บูลีน หรือข้อความที่สามารถแปลงเป็นตัวเลขได้ โปรดทราบว่ารูปแบบที่เกี่ยวข้องกับที่ตั้งเป็นข้อพิจารณาที่สำคัญเมื่อสื่อสารกับระบบภายนอก

ตัวอย่าง

ผู้ใช้ที่เรียกใช้สูตรเหล่านี้อยู่ในสหรัฐอเมริกา และเลือกภาษาอังกฤษเป็นภาษาของพวกเขา ฟังก์ชัน Language จะส่งกลับ "en-US" โฮสต์ Power Fx ใช้ Decimal ตามค่าเริ่มต้น

Value และ Decimal

เนื่องจากเราใช้โฮสต์ที่มี Decimal เป็นค่าเริ่มต้น Value และ Decimal จะส่งกลับผลลัพธ์เดียวกัน

สูตร Description Result
Value( "123.456" )
Decimal( "123.456" )
ภาษาเริ่มต้นของ "en-US" จะถูกนำมาใช้ ซึ่งใช้มหัพภาคเป็นตัวคั่นทศนิยม 123.456 (Decimal)
Value( "123.456", "es-ES" )
Decimal( "123.456", "es-ES" )
"es-ES" เป็นแท็กภาษาสำหรับภาษาสเปนในประเทศสเปน ในประเทศสเปน มหัพภาคเป็นตัวคั่นหลักพัน 123456 (Decimal)
Value( "123,456" )
Decimal( "123,456" )
ภาษาเริ่มต้น "en-US" จะถูกใช้ ซึ่งใช้เครื่องหมายจุลภาคเป็นตัวคั่นหลักพัน 123456 (Decimal)
Value( "123.456", "es-ES" )
Decimal( "123,456", "es-ES" )
"es-ES" เป็นแท็กภาษาสำหรับภาษาสเปนในประเทศสเปน ในประเทศสเปน เครื่องหมายจุลภาคเป็นตัวคั่นทศนิยม 123.456 (Decimal)
Value( "12.34%" )
Decimal( "12.34%" )
เครื่องหมายเปอร์เซ็นต์ที่ส่วนท้ายของสตริงระบุว่า นี่คือเปอร์เซ็นต์ 0.1234 (Decimal)
Value( "$ 12.34" )
Decimal( "$ 12.34" )
สัญลักษณ์สกุลเงินสำหรับภาษาที่ใช้ปัจจุบันจะถูกละเว้น 12.34 (Decimal)
Value( "24e3" )
Decimal( "24e3" )
เครื่องหมายทางวิทยาศาสตร์สำหรับ 24 x 103 24000 (Decimal)
Value( true )
Decimal( true )
แปลงแบบบูลีนเป็นตัวเลข 0 สำหรับ false และ 1 สำหรับ true 1 Decimal

Float

ฟังก์ชัน Float จะมีผลลัพธ์ใกล้เคียงกับผลลัพธ์ข้างต้นมาก เนื่องจาก 123.456 ไม่สามารถแสดงได้อย่างแม่นยำใน Float ผลลัพธ์จึงเป็นค่าประมาณที่ใกล้เคียง (123.456000000000003069544618484E2) และการคำนวณข้อผิดพลาดในการปัดเศษแบบทบต้นอาจส่งผลให้เกิดผลลัพธ์ที่ไม่คาดคิด ชนิดผลลัพธ์จะเป็น Float แทน

สิ่งที่แตกต่างคือหากใช้ตัวเลขมากขึ้นหรือน้อยลง

สูตร Description Result
Float( 1e100 ) เนื่องจากสัญพจน์ตัวเลข 1e100 อยู่นอกเหนือช่วง Decimal จึงทำให้เกิดข้อผิดพลาดก่อนที่จะเรียกใช้ฟังก์ชัน Float error (overflow)
Decimal( 1e100 ) ปัญหาเดียวกันกับฟังก์ชัน Float error (overflow)
Float( "1e100" ) ตัวเลขในสตริงข้อความอยู่ในช่วงของตัวเลข Float 1e100 Float
Decimal( "1e100" ) ตัวเลขในสตริงข้อความเกินช่วงของตัวเลข Decimal error (overflow)
Float( "10000000000.0000000001" ) ตัวเลขในสตริงข้อความอยู่ในช่วงของตัวเลข Float อย่างไรก็ตาม ตัวเลขต้องการความแม่นยำมากกว่าที่ Float จะให้ได้และจะถูกตัดทอน 1 (Float)
Decimal( "10000000000.0000000001" ) ตัวเลขในสตริงข้อความอยู่ภายในช่วงและความแม่นยำของตัวเลข Decimal 10000000000.0000000001 (Decimal)