แชร์ผ่าน


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

ใช้กับ: แอปพื้นที่ทำงาน คอลัมน์สูตร Dataverse โฟลว์เดสก์ท็อป แอปแบบจำลอง Power Platform CLI

แปลงสตริงข้อความหรือชนิดอื่นๆ ให้เป็นตัวเลข

คำอธิบาย

หมายเหตุ

Power Apps รองรับเฉพาะฟังก์ชัน Value และส่งคืนค่า Float เราจะเพิ่มการรองรับฟังก์ชัน Decimal และ Float ในเร็วๆ นี้

ใช้ฟังก์ชัน Decimal, Float และ Value เพื่อแปลงสตริงของข้อความที่ประกอบด้วยอักขระตัวเลขให้เป็นค่าตัวเลข ใช้ฟังก์ชันเหล่านี้ เมื่อคุณจำเป็นต้องคำนวณตัวเลขที่ป้อนเข้าไปเป็นข้อความโดยผู้ใช้ ฟังก์ชันเหล่านี้ยังสามารถใช้เพื่อแปลงชนิดอื่นๆ ให้เป็นตัวเลข เช่น วันที่/เวลา และแบบบูลีน

ฟังก์ชัน Value จะส่งกลับชนิดข้อมูลตัวเลขเริ่มต้นสำหรับโฮสต์ Power Fx ที่คุณใช้ ซึ่งโดยปกติจะเป็น Decimal และตัวเลือกที่ดีที่สุดสำหรับสถานการณ์ส่วนใหญ่ ใช้ฟังก์ชัน Decimal และ Float เมื่อคุณต้องการชนิดข้อมูลเฉพาะสำหรับสถานการณ์เฉพาะ เช่น ข้อมูลทางวิทยาศาสตร์ การคำนวณด้วยจำนวนที่มาก สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับการทำงานกับชนิดข้อมูลเหล่านี้ โปรดดู ส่วนตัวเลขของชนิดข้อมูล

ภาษาที่ต่างกันแปล , และ . แตกต่างกันไป โดยค่าเริ่มต้น ข้อความจะถูกแปลเป็นภาษาของผู้ใช้ปัจจุบัน คุณสามารถระบุภาษาที่ใช้ด้วยแท็กภาษา ซึ่งใช้แท็กภาษาเดียวกับที่ส่งกลับโดยฟังก์ชัน Language

โปรดสังเกตรูปแบบของสตริง:

  • สตริงอาจขึ้นต้นด้วยสัญลักษณ์สกุลเงินสำหรับภาษาปัจจุบัน สัญลักษณ์สกุลเงินถูกละเว้น สัญลักษณ์สกุลเงินสำหรับภาษาอื่นๆ จะไม่ถูกละเว้น
  • สตริงอาจรวมถึงเครื่องหมายเปอร์เซ็นต์ (%) ที่ส่วนท้าย ซึ่งระบุว่าเป็นเปอร์เซ็นต์ ตัวเลขจะถูกหารด้วย 100 ก่อนการส่งกลับ เปอร์เซ็นต์และสัญลักษณ์สกุลเงินไม่สามารถผสมกันได้
  • สตริงอาจอยู่ในรูปเครื่องหมายทางวิทยาศาสตร์ โดยที่ 12 x 103 เขียนเป็น "12e3" ได้

หากตัวเลขไม่อยู่ในรูปแบบที่เหมาะสม ฟังก์ชันเหล่านี้จะส่งกลับข้อผิดพลาด

เมื่อต้องการแปลงค่าวันที่และเวลา ใช้ฟังก์ชัน DateValueTimeValue หรือ 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)