我希望a
四舍五入到13.95.
>>> a
13.949999999999999
>>> round(a, 2)
13.949999999999999
Run Code Online (Sandbox Code Playgroud)
该round
功能不像我预期的那样工作.
Python Decimal不支持从float构造; 它希望你必须先将float转换为字符串.
这非常不方便,因为浮点数的标准字符串格式化程序要求您指定小数位数而不是重要位置.因此,如果你有一个数字,可能有多达15个小数位,你需要格式化为十进制(""%.15f"%my_float),如果你之前也有任何有效数字,这将给你15位小数的垃圾小数.
有人建议一个很好的方法从用户输入的浮点数转换为十进制保留值,可能会限制可支持的有效位数吗?
我在使用浮点变量时听说过"错误".现在我正在尝试解决这个难题,我想我得到了一些舍入/浮点错误.所以我最终要弄清楚浮点错误的基础知识.
什么是浮点/舍入误差的简单示例(最好是在C++中)?
编辑:例如说我有一个成功概率为p的事件.我做了10次此事件(p没有变化,所有试验都是独立的).两次成功试验的概率是多少?我把它编码为:
double p_2x_success = pow(1-p, (double)8) * pow(p, (double)2) * (double)choose(8, 2);
Run Code Online (Sandbox Code Playgroud)
这是浮点错误的机会吗?
我的代码:
a = '2.3'
Run Code Online (Sandbox Code Playgroud)
我想显示a
为浮点值.
既然a
是一个字符串,我试过:
float(a)
Run Code Online (Sandbox Code Playgroud)
我得到的结果是:
2.2999999999999998
Run Code Online (Sandbox Code Playgroud)
我想要一个解决这个问题的方法.拜托,请帮助我.
我正在学习本教程.
在下面的代码中,我有percentage
一个浮点变量.我设置它以便if number
到达10,000
,percentage
假设上升.01
.
# Tries to find a number that when squared and 5%'ed is still a square.
import math
print("Script has started:\n")
percentage = .1
number = 1
while number != -1:
number = number + 1
num_powered = number ** 2
num_5per = num_powered * percentage
num_5per_sqrt = math.sqrt(num_5per)
num_list = list(str(num_5per_sqrt))
dot_location = num_list.index(".")
not_zero = 0
for x in num_list[dot_location + 1:]:
if …
Run Code Online (Sandbox Code Playgroud)