예를 들어 (/ 1.0 7.0) 할 때, 나는 17 자리 만받습니다 : 0.14285714285714285. 어떻게 그 이상을 얻을 수 있습니까?클로저에서 n 개의 십진수로 반올림하는 숫자
11
A
답변
14
사용 BigDecimal
번호와 with-precision
:
(with-precision 50 (/ 1M 7))
=> 0.14285714285714285714285714285714285714285714285714M
10
Clojure의 (그리고 거의 모든 lisps)의 비율 유형은 정밀도를 잃지 않는 방법이있다. 비율로 모든 계산을 수행하고 정밀도 문제를 피하기 위해 마지막 순간에 double/float로 변환하십시오.
+0
그러나 비율에주의하십시오. 예를 들어, 비율을 반복해서 곱하면 분자와 분모가 커질 수 있습니다. 이것은 매우 느려질 수 있으며 많은 RAM을 사용할 수 있습니다. – Mars
관련 문제
- 1. JavaScript - 십진수로 숫자 표시
- 2. Java/Android에서 100을 110으로 나눈 값을 십진수로 반올림하는 방법
- 3. 루비 간단한 우리가 쉽게 많은 방법으로 n 개의 숫자 1을 생성 할 수 있습니다 루비에서 다음 n 개의 숫자
- 4. 클로저에서 함수를 정의하는 방법
- 5. 소수의 n 번째 숫자 찾기
- 6. n 번째 숫자 성능 선택?
- 7. 통화 가치를 반올림하는 방법
- 8. n 개의 목록 교차점
- 9. n 개의 배열 만들기
- 10. n 개의 문자열 조합
- 11. 최대 두 개의 숫자
- 12. 큐브에서 문자열을 십진수로 변환
- 13. 내보기에 n 개의 맞춤 셀을 추가하려면 어떻게해야합니까?
- 14. 클로저에서 변수 반환
- 15. Istream은 최대 N 개의 공백 문자를 사용합니다.
- 16. 입력에서 십진수로 변환되는 양식에서 입력
- 17. 문자열을 N 개의 문자열로 나눕니다.
- 18. N 개의 항목을 그룹화하는 방법?
- 19. 구아바 - 라이브러리 : n 개의 인스턴스
- 20. SQL Server 2008 : N 개의 작은 데이터베이스 N 개의 스키마가있는 VS 1 개의 데이터베이스
- 21. float를 소수점으로 구분하는 두 개의 십진수로 쉼표로 바꾸려면 어떻게해야합니까?
- 22. 값을 반올림하는 방법은 무엇입니까?
- 23. 각 부분 집합의 숫자 합계의 표준 편차를 최소화하기 위해 숫자 시퀀스를 n 개의 하위 집합으로 나누는 데 사용할 알고리즘
- 24. <n 개의 테이블에 n-gram을 데이터베이스에 저장하는 경우
- 25. 스키마의 십진수로 문자열
- 26. 십진수로 변환하는 각도
- 27. 분수가 십진수로 변경됩니다.
- 28. 'null'varchar를 십진수로 변환
- 29. 로마자에서 십진수로 변환
- 30. 오라클 숫자에서 C# 십진수로
그래, 그건 꽤 간단했다. 그런 질문을하는 나 절름발이. 큰 감사를 드린다! –
정밀도와 함께조차도 BigDecimal은 어떤 지점에서 반올림되고 숫자 142857은 무한히 반복됩니다. (http://en.wikipedia.org/wiki/Continued_fraction 참조) – klang
Clojure docs : ['with-precision'] (http://clojuredocs.org/clojure_core/clojure.core/with-precision) –