当前位置: 首页 > 面试题库 >

仅当不是整数时如何显示小数点?

郎宏浚
2023-03-14
问题内容

我已经用Google搜索,但是找不到合适的答案。

假设我们有浮动货币,并且得到了平均值。他们的平均值是这样的:

3.5
2.5
5
7

因此,我们有4个数字 (他们不再在列表中) 。带小数的两个数字和两个整数。

我要做的是打印这些数字并保持它们不变。我的问题是,但是,当我使用%.1f它时,它会从5和7生成5.0和7.0,而我想保持它们原样
(所以将它们作为一个整数)

所以我想按原样打印它们,但我不知道如何打印。浮点数decimal加整数。将它们转换为int会删除所需的小数。

这两个选项都不是我想要的。

有人可以指出我正确的方向吗?

编辑:相关代码,按要求进行:

# I have a list of numbers and I am calculating their average and rounding them first.
get_numbers = map(float, line[-1])
average_numbers = sum(get_numbers) / len(get_numbers)
rounded_numbers= round(average_numbers * 2) / 2

# So now, I've got the numbers: 3.5, 2.5, 5, 7

print "The numbers are: %.1f" % (rounded_numbers)

问题答案:

您可以使用float的is_integer方法。它返回True是否可以将浮点数表示为整数(换句话说,如果其形式为X.0):

li = [3.5, 2.5, 5.0, 7.0]

print([int(num) if float(num).is_integer() else num for num in li])
>> [3.5, 2.5, 5, 7]

编辑

OP添加他们的代码后:

而不是像上面的原始示例那样使用列表理解,您应该对计算的平均值使用相同的逻辑:

get_numbers = map(float, line[-1])  # assuming line[-1] is a list of numbers
average_numbers = sum(get_numbers) / len(get_numbers)
average = round(average_numbers * 2) / 2
average = int(average) if float(average).is_integer() else average
print average  # this for example will print 3 if the average is 3.0 or
               # the actual float representation.


 类似资料:
  • 问题内容: 我只想在编辑文本中显示两位小数,ofc我想在编辑文本中显示货币,但将其值限制为小数点后两位。 我已经看到了一些使用正则表达式的解决方案,但我不想这样做。我被告知Java支持一些内部库函数可以做到这一点。任何人都可以给我提示或为此提供一些有效的代码。 问候 问题答案: 您可以简单地使用 你会得到结果为

  • 问题内容: 如果我有以下小数点数字: 然后我得到以下输出: 我想要的是: 问题答案: 可能令人困惑的部分是 的表示整个数(包括小数)的长度,而不仅仅是小数之前的部分。该代表的小数位数。 因此,要使格式正确无误,最多可以有小数点前4个数字和小数点后3个位,实际上是所需的格式。

  • 问题内容: 我已经忙了好几个小时了,但是我无法正常工作。 时差为25(小时)。但是我得到的输出是1(天)。 如何获得25小时的输出? 问题答案: 关于使用TIMESTAMPDIFF呢?

  • 问题内容: 我正在使用Flask / Jinja2模板来使用浮点过滤器显示数字。 这是我的代码 | 输出有点尴尬: 我正在寻找一种方法来将点后的位置限制为一个数字,例如2。 所需的输出: 问题答案: 我的代码: 可以通过以下方式进行更改: 或使用格式:

  • 在使用for循环时,我试图在数组中只显示偶数(0-18)。 到目前为止,我已经显示了 我试着改变

  • getter称为getShowName()、getEpsWatched()和getShowStatus(),它们获得变量showName、epsWatched和showStatus。 这里怎么了?显示字符串,但不显示int。