2016-09-08 20 views
7

Tôi muốn xác định xem giá trị có phải là số hay không trước khi cố gắng sử dụng một hàm trên đó. Ví dụ cụ thể:Cách kiểm tra giá trị số trong Julia

z = [1.23,"foo"] 
for val in z 
    if isnumeric(val) 
     round(z) 
    end 
end 

Đây isnumeric() là hàm tôi không nghĩ là có ở Julia. Tôi có thể nghĩ ra một vài cách khác nhau để có thể thực hiện được nhưng tôi muốn xem một số đề xuất cho cách "tốt nhất".

+2

Trường hợp sử dụng của bạn không hoàn toàn rõ ràng, vì vậy có thể sử dụng công văn để kiểm soát những gì được gọi là f hoặc các loại giá trị khác nhau. – jverzani

Trả lời

9

tôi nghĩ thành ngữ ưa thích là

isa(val, Number) 

Thông thường bạn quan tâm đến nổi làm tròn, trong trường hợp này

isa(val, AbstractFloat) 
8

Bạn có thể kiểm tra loại của phần tử như thế này:

typeof(val)<:Number 

Các :< kiểm tra hành nếu một loại là một subtype của người khác.

Dưới đây là một biểu đồ rất hữu ích cho một tổng quan về các loại số trong Julia: https://en.wikibooks.org/wiki/Introducing_Julia/Types

+0

Không chọn câu trả lời vì sử dụng 'isa()' được xây dựng sẵn là một cách tiếp cận tốt hơn. Tuy nhiên, liên kết của bạn với biểu đồ loại Julia là tuyệt vời. – bizzy

Các vấn đề liên quan