 
 (defn str-double->int
   "1. or 1.0...0 will convert to 1"
-  [s]
+  [^String s]
   (some-> (re-find #"^([0-9]+)\.0*$" s)
           (last)
+          str
           (Integer/valueOf)))
 
 (defn double->int

        (and (string? x)
             (str-double->int x)) (str-double->int x)
        (string? x) (try
                      (Integer/valueOf x)
                      (catch Exception e
                        :clojure.spec/invalid))
        :else :clojure.spec/invalid))

    (clojure.core/double? x) x
    (clojure.core/integer? x) (double x)
    (string? x) (try
                  (Double/valueOf (str x))
                  (catch Exception e
                    :clojure.spec/invalid))
    :else :clojure.spec/invalid))
