Chia sẻ qua


Decimal, Floatvà các Value hàm

Chức năng Áp dụng cho
Decimal
Float
Copilot Studio Desktop flows Dataverse formula columns Power Platform CLI Dataverse functions
Value Ứng dụng Canvas Copilot Studio Desktop flows Dataverse formula columns Các ứng dụng dựa trên mô hình Power Platform CLI Dataverse functions Power Pages

Chuyển đổi một chuỗi văn bản hoặc các kiểu dữ liệu khác thành số.

Description

Lưu ý

Power Apps chỉ hỗ trợ hàm Value và trả về một giá Float trị. Hỗ trợ cho các Decimal chức năng Float và sẽ sớm được thêm vào.

Sử dụng Decimal, Floatvà các hàm Value để chuyển đổi một chuỗi văn bản có chứa các ký tự số thành một giá trị số. Sử dụng các hàm này khi bạn cần thực hiện các phép tính trên các số được người dùng nhập dưới dạng văn bản. Các hàm này cũng có thể được sử dụng để chuyển đổi các kiểu dữ liệu khác thành số, chẳng hạn như ngày/giờ và Boolean.

Hàm Value sẽ trả về kiểu dữ liệu số mặc định cho máy chủ Power Fx mà bạn đang sử dụng, Decimal thường là lựa chọn tốt nhất và phù hợp nhất cho hầu hết các tình huống. Dùng các hàm DecimalFloat khi bạn cần một kiểu dữ liệu cụ thể cho một kịch bản cụ thể, chẳng hạn như một phép tính khoa học với một số rất lớn. Để biết thêm chi tiết về cách làm việc với các kiểu dữ liệu này, hãy xem phần Số của Kiểu dữ liệu.

Các ngôn ngữ khác nhau diễn giải ,. khác nhau. Theo mặc định, văn bản được diễn giải bằng ngôn ngữ của người dùng hiện tại. Bạn có thể chỉ định ngôn ngữ để dùng với thẻ ngôn ngữ, sử dụng chính các thẻ ngôn ngữ mà hàm Language trả về.

Ghi chú về định dạng của chuỗi:

  • Chuỗi có thể bắt đầu bằng ký hiệu tiền tệ của ngôn ngữ hiện tại. Ký hiệu tiền tệ này bị bỏ qua. Ký hiệu tiền tệ của các ngôn ngữ khác không bị bỏ qua.
  • Chuỗi có thể bao gồm dấu phần trăm (%) ở cuối, để biểu thị rằng đó là phần trăm. Số sẽ được chia cho 100 trước khi được trả về. Không thể trộn lẫn phần trăm và ký hiệu tiền tệ.
  • Chuỗi có thể theo ký hiệu khoa học, với 12 x 103 được thể hiện là "12e3".

Nếu số không có định dạng phù hợp, các hàm này sẽ trả về lỗi.

Để chuyển đổi giá trị ngày và giờ, hãy sử dụng các hàm DateValue, TimeValue hoặc DateTimeValue.

Cú pháp

Decimal( Chuỗi [, Thẻ Ngôn ngữ ] )
Float( Chuỗi [, Thẻ Ngôn ngữ ] )
Value( Chuỗi [, Thẻ Ngôn ngữ ] )

  • Chuỗi - Bắt buộc. Chuỗi để chuyển đổi thành một giá trị số.
  • LanguageTag - Tùy chọn. Thẻ ngôn ngữ để phân tích cú pháp chuỗi. Nếu không được chỉ định, thì ngôn ngữ của người dùng hiện tại sẽ được sử dụng.

Decimal( Động )
Float( Động )
Value( Động )

  • Động - Bắt buộc. Giá trị động đại diện cho một số. Các giá trị được chấp nhận phụ thuộc vào nhà cung cấp chưa được nhập. Đối với JSON, giá trị động dự kiến sẽ là số JSON, boolean hoặc văn bản có thể được chuyển đổi thành số. Lưu ý rằng bạn nên cân nhắc những định dạng liên quan đến ngôn ngữ khi giao tiếp với các hệ thống bên ngoài.

Ví dụ

Người dùng chạy các công thức này ở tại Hoa Kỳ và đã chọn tiếng Anh làm ngôn ngữ của họ. Hàm Language đang trả về "en-US". Máy chủ Power Fx sử dụng theo Decimal mặc định.

Value Và Decimal

Vì chúng tôi đang sử dụng một máy chủ có làm Decimal mặc định và Value sẽ trả về Decimal kết quả tương tự.

Công thức Description Kết quả
Value( "123.456" )
Decimal( "123.456" )
Ngôn ngữ mặc định của "en-US" sẽ được sử dụng, trong đó dấu chấm sẽ là dấu phân tách thập phân. 123.456 (Decimal)
Value( "123.456", "es-ES" )
Decimal( "123.456", "es-ES" )
"Es-ES" là thẻ ngôn ngữ cho tiếng Tây Ban Nha ở Tây Ban Nha. Ở Tây Ban Nha, dấu chấm là dấu phân tách hàng nghìn. 123456 (Decimal)
Value( "123,456" )
Decimal( "123,456" )
Ngôn ngữ mặc định của "en-US" sẽ được sử dụng, trong đó dấu phẩy sẽ là dấu phân tách hàng nghìn. 123456 (Decimal)
Value( "123,456", "es-ES" )
Decimal( "123,456", "es-ES" )
"Es-ES" là thẻ ngôn ngữ cho tiếng Tây Ban Nha ở Tây Ban Nha. Ở Tây Ban Nha, dấu phẩy là dấu phân tách thập phân. 123.456 (Decimal)
Value( "12,34%" )
Decimal( "12,34%" )
Dấu phần trăm ở cuối chuỗi cho biết đây là tỷ lệ phần trăm. 0,1234 (Decimal)
Value( "$ 12,34" )
Decimal( "$ 12,34" )
Ký hiệu tiền tệ của ngôn ngữ hiện tại bị bỏ qua. 12.34 (Decimal)
Value( "24e3" )
Decimal( "24e3" )
Ký hiệu khoa học cho 24 x 103. 24000 (Decimal)
Value( đúng )
Decimal( đúng )
Chuyển đổi Boolean thành một số, 0 cho false và 1 cho true 1 Decimal

Float

Hàm Float sẽ có rất gần với cùng kết quả như trên. Vì 123,456 Floatkhông thể được thể hiện chính xác trong , kết quả là một xấp xỉ rất gần (123,45600000000000003069544618484E2) và tính toán lỗi làm tròn kép có thể dẫn đến kết quả không mong muốn. Loại kết quả sẽ thay Float thế.

Sự khác biệt nằm ở chỗ sử dụng số lớn hơn hay số nhỏ hơn.

Công thức Description Kết quả
Float( 1e100 ) Vì số ký tự nằm 1e100 ngoài phạm vi của Decimal, điều này dẫn đến lỗi trước khi gọi hàm Float . lỗi (tràn)
Decimal( 1e100 ) Cùng một vấn đề với các chức Float năng. lỗi (tràn)
Float( "1e100" ) Số trong chuỗi văn bản nằm trong phạm vi số Float . 1e100 Float
Decimal( "1e100" ) Số trong chuỗi văn bản nằm ngoài phạm vi số Decimal . lỗi (tràn)
Float( "10000000000.0000000001" ) Số trong chuỗi văn bản nằm trong phạm vi số Float . Tuy nhiên, số này đòi hỏi độ chính xác cao hơn số Float có thể cung cấp và sẽ bị cắt bớt. 1 (Float)
Decimal( "10000000000.0000000001" ) Số trong chuỗi văn bản nằm trong cả phạm vi và độ chính xác của một Decimal số. 100000000000.000000001 (Decimal)