Как я могу конвертировать 42.0
в 42.00
на Схеме?
Пример (на схеме):
Когда я делаю (/ 20.00 2)
, я получаю 10.0
. Я хочу, чтобы 10.00
как результат выше, вместо 10.0
Схема: точность десятичных чисел
ответ
Объекты, представленные 10.0
и 10.00
одинаковы. В схеме R5RS нет такой величины, как десятичное число с фиксированной точностью. Для чего нужна фиксированная точность? Если это актуально для вывода, вам нужно сделать отформатированную печать. Проверьте документацию по реализации схемы на функцию printf
или format
. Если, с другой стороны, вам действительно нужна десятичная арифметика, вам нужно либо использовать точные коэффициенты, либо округлять явно в соответствии с правилами, которые вы хотите использовать, или использовать целые числа и рассматривать их как единицы размера 1/100.
Номера 10.0
и 10.00
- это точно такие же. Может быть, вы хотите отформатировать свой вывод на строку с фиксированным числом десятичных знаков справа от точки? попробуйте это:
(define (right-pad number len)
(let* ((nstr (number->string number))
(diff (- len (string-length nstr)))
(pads (if (> diff 0) (make-string diff #\0) "")))
(string-append nstr pads)))
Используйте это так:
(display (right-pad (/ 20.00 2) 5))
> 10.00
Обратите внимание, что параметр len
указывает общее количество символов искомых в результирующей строке, в том числе точки. Преимущество этого решения заключается в том, что он не зависит от внешних библиотек.
Решение Óscar хорошо работает, но еще более простым решением является использование SRFI-48, которое предоставляет дополнительные директивы формата.
(display (format "~0,2F" (/ 20.00 2)))
Если вы используете ракетку, я думаю, что может помочь.
(~ г пи #: точность 4)
"3,1416"
- 1. Точность десятичных знаков в Python
- 2. Lua: вычитание десятичных чисел не возвращает правильную точность
- 3. Обработка десятичных чисел в mysqli
- 4. добавления десятичных чисел с JavaScript
- 5. Регулярное выражение для десятичных или десятичных чисел
- 6. Преобразование десятичных чисел? удвоить?
- 7. Мощность десятичных чисел
- 8. Проверка JavaScript десятичных чисел
- 9. LinearAxis без десятичных чисел
- 10. Сравнение двух десятичных чисел
- 11. Форматирование десятичных чисел
- 12. Конвертер десятичных чисел DataGrid
- 13. Список с десятичных чисел
- 14. Угловой перевод десятичных чисел
- 15. Сокращение десятичных чисел
- 16. Haskell отрицательного десятичных чисел
- 17. десятичных чисел проверки обязательно
- 18. VBScript вычитания десятичных чисел
- 19. iOS: форматирование десятичных чисел
- 20. Проверка десятичных чисел
- 21. преобразование десятичных чисел
- 22. Точность округления чисел
- 23. Формат чисел Twig без округлых десятичных знаков
- 24. Метры до десятичных градусов. Высокая точность
- 25. Python - Как повысить точность десятичных знаков?
- 26. Сортировка массива десятичных чисел и целых чисел
- 27. Отображение чисел без десятичных знаков
- 28. умножение десятичных чисел в Java
- 29. Преобразование десятичных чисел в шестнадцатеричный
- 30. Ввод десятичных чисел в C
Я не получаю 10,0; Я получаю 1e1. Моя точка зрения заключается в том, что речь идет о внешнем представлении – GoZoner