gpt4 book ai didi

printf - 如何格式化 DOUBLE 以在 Eiffel 中仅打印两位小数?

转载 作者:行者123 更新时间:2023-12-04 06:48:57 26 4
gpt4 key购买 nike

在eiffel中,你是如何做到这样的数字的。

118.1999999999999

打印到:
118.20 

在其他语言中只是 printf 的问题,但在 Eiffel 中似乎没有办法轻松做到这一点。

最佳答案

您应该使用 FORMAT_DOUBLE 类

local
fd: FORMAT_DOUBLE
do
create fd.make (5, 3)
print (fd.formatted ({REAL_64} 12345.6789)) --> "12345.679"
print (fd.formatted ({REAL_64} 12345.6)) --> "12345.600"
print (fd.formatted ({REAL_64} 0.6)) --> "0.600"

create fd.make (10, 2)
fd.right_justify
print (fd.formatted ({REAL_64} 1.678)) --> " 1.68"

create fd.make (20, 3)
fd.right_justify
print ("[" + fd.formatted ({REAL_64} 12345.6789) + "]%N") --> [ 12345.679]
fd.left_justify
print ("[" + fd.formatted ({REAL_64} 12345.6789) + "]%N") --> [12345.679 ]
fd.center_justify
print ("[" + fd.formatted ({REAL_64} 12345.6789) + "]%N") --> [ 12345.679 ]

等等 ...

还有一组模仿 "printf"的类,你可以在 http://www.amalasoft.com/downloads.htm 找到它们。
我自己没有使用过它们,但这可能会满足您的需求。

这是使用 ECMA Eiffel(我不确定之前的响应来自哪里,但 DOUBLE 没有这样的函数 `to_string_format'。DOUBLE 是 REAL_64 的旧名称

关于printf - 如何格式化 DOUBLE 以在 Eiffel 中仅打印两位小数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3393178/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com