В ClojureScript, как да покажа float с 2 десетични знака?

Опитах се да използвам with-precision, но не се получи:

(.log js/console (with-precision 2 1.2345)) 

Така че използвах toFixed:

(.log js/console (.toFixed 1.2345 2)) 

Но чувствам, че това не е идиоматичният начин да се направи това.

Освен това не разбирам защо with-precision не работи.

Моля, вдъхновете ме...


person viebel    schedule 04.02.2014    source източник
comment
в cljs няма with-precision   -  person edbond    schedule 04.02.2014
comment
@edbond, как да разбера кои части от clojure са налични в cljs?   -  person viebel    schedule 04.02.2014
comment
малко информация тук - github.com/clojure/clojurescript/wiki/Differences-from- Clojure Обърнете внимание и на предупрежденията: WARNING: Use of undeclared Var some-namespace/with-precision at line 430   -  person edbond    schedule 04.02.2014


Отговори (3)


(ns foo.bar
  (:require [cljs.pprint :as pprint]))

(pprint/cl-format nil  "~,2f" 1.2345) ; => returns "1.23"
(pprint/cl-format true "~,2f" 1.2345) ; => prints "1.23", returns nil

Същият код може да се използва в Clojure, ако размените cljs.pprint с clojure.pprint.

person alesguzik    schedule 13.12.2015

(defn round-number 
   [f]
   (/ (.round js/Math (* 100 f)) 100))

Ако искате да го запазите като тип число (вдъхновено от javascript отговор )

person Michel A.    schedule 28.02.2019

person    schedule
comment
Интересното е, че Google Closure изрично казва да се използва .toFixed в просто случаи! - person Jeremy Field; 04.11.2020
comment
Да, мисля, че .toFixed е по-добре за този пример. Правилният отговор изглежда е, че го правите правилно :) - person Timothy Pratley; 04.11.2020