如何在Scheme中将42.0
转换为42.00
?
例如(在方案中):
当我做(/ 20.00 2)
时,我得到10.0
。我想10.00
作为上述代替10.0
方案:十进制数的精度
2
A
回答
5
通过10.0
和10.00
是相同的表示的对象的结果。在R5RS Scheme中没有固定精度的十进制数。你需要什么固定的精度?如果它与输出相关,则需要进行某种格式的打印。检查您的计划实施的文档有关printf
或format
函数。另一方面,如果实际上需要十进制算术,则需要使用精确比率并根据要使用的规则明确舍入,或者使用整数并将它们视为1/100大小的单位。
4
数字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
参数表示结果字符串中所需的字符总量,包括点。该解决方案具有独立于外部库的优点。
6
奥斯卡的解决方案运行良好,但更简单的解决方案是使用SRFI-48,它提供了额外的格式指令。
(display (format "~0,2F" (/ 20.00 2)))
0
如果您使用的球拍,我认为这可能帮助。
(〜[R PI#:精密4)
“3.1416”
相关问题
- 1. Weka十进制精度
- 2. python十进制精度
- 3. 具有十进制精度的分数
- 4. 获得准确的精度数十进制c后的精度#
- 5. Python函数返回十进制精度
- 6. 十进制到半精度浮点数
- 7. C# - 十进制类型的十进制精度更高
- 8. Python中的十进制精度Scipy lfilter?
- 9. MathNet中的双精度到十进制
- 10. C++中的十进制精度错误
- 11. Django十进制精度损失
- 12. Python十进制类型精度错误
- 13. 十进制铸造和精度问题
- 14. Java十进制精度问题
- 15. pchisq增加十进制精度
- 16. 红宝石十进制精度
- 17. T-SQL十进制分割精度
- 18. 实体框架6十进制精度
- 19. C#double至十进制精度损失
- 20. Android双精度十进制格式
- 21. C#十进制和双精度
- 22. 十进制精度问题DbParameter
- 23. Excel VBA Excel十进制精度
- 24. 限制十进制数的输出到特定的精度
- 25. 剪切精确到十进制的十进制小数
- 26. 如何根据位数计算精度的十进制数字?
- 27. 将二进制双精度数字的十六进制表示转换回Ruby中的双精度
- 28. HIVE十进制2精确
- 29. Java不会接受双精度变量的十进制数
- 30. 设置十进制标识符的标度和精度
我没有得到10.0;我得到1e1。我的观点是关于外部表示 – GoZoner 2012-04-15 03:23:09