   (and (not (js/isNaN (js/parseFloat n))) (js/isFinite n)))
 
 
+
 (defn parse-int-or [v dv]
   (if (is-numeric? v)
     (js/parseInt v)
     dv))
 
-
 (defn parse-int-or-nil [v]
   (parse-int-or v nil))
 
 (defn parse-int-or-zero [v]
   (parse-int-or v 0))
+
+
+(defn parse-float-or [v dv]
+  (if (is-numeric? v)
+    (js/parseFloat v)
+    dv))
+
+(defn parse-float-or-nil [v]
+  (parse-float-or v nil))
+
+(defn parse-float-or-zero [v]
+  (parse-float-or v 0))
+
+
+
+(defn parse-number-or [v dv]
+  (if (is-numeric? v)
+    (new js/Number v)
+    dv))
+
+(defn parse-number-or-nil [v]
+  (parse-number-or v nil))
+
+(defn parse-number-or-zero [v]
+  (parse-number-or v 0))
+
+
+
+
+
 
 
 (defn on-click-com-fn [f]

       #js {:className "container-fluid"}
       (dom/div
        #js {:className "row"}
        (dom/div #js {:className "input-group" :style #js {:marginBottom 6}}
                 (dom/span #js {:className "input-group-btn"}
                           (ui-button {:type     :default
                                       :on-click (fn [_]



(defn input-datetime-form-group--date [app]
  (input-datetime--parse-str-to-date (app :value)))


(defn input-vldfn-not-empty-datetime [app v]
