草庐IT

floating-point-conversion

全部标签

python - 为什么 Python 的 math.ceil() 和 math.floor() 操作返回 float 而不是整数?

有人可以解释一下吗(直接来自docs-强调我的):math.ceil(x)Returntheceilingofxasafloat,thesmallestintegervaluegreaterthanorequaltox.math.floor(x)Returnthefloorofxasafloat,thelargestintegervaluelessthanorequaltox..ceil和.floor根据定义应该计算整数,为什么会返回float?编辑:这得到了一些很好的论据,说明为什么他们应该返回float,而我刚刚习惯了这个想法,@jcollado指出他们实际上确实在Python3中

python - 在python中将 float 转换为整数的最安全方法?

Python的数学模块包含方便的函数,例如floor和ceil。这些函数采用float并返回其下方或上方最接近的整数。然而,这些函数将答案作为float返回。例如:importmathf=math.floor(2.3)现在f返回:2.0什么是从这个float中取出一个整数的最安全方法,而不会有舍入错误的风险(例如,如果float等于1.99999)或者我应该完全使用另一个函数? 最佳答案 所有可以用float表示的整数都有一个精确的表示。所以你可以安全地在结果上使用int。仅当您尝试使用不是2的幂的分母来表示有理数时,才会出现不精确

python - 在 Python 中,如何将列表中的所有项目转换为 float ?

我有一个脚本,它读取一个文本文件,将十进制数字作为字符串提取出来并将它们放入一个列表中。所以我有这个list:my_list=['0.49','0.54','0.54','0.55','0.55','0.54','0.55','0.55','0.54']如何将列表中的每个值从字符串转换为float?我试过了:foriteminmy_list:float(item)但这似乎对我不起作用。 最佳答案 [float(i)foriinlst]准确地说,它创建了一个带有浮点值的新列表。与map方法不同,它可以在py3k中工作。

python - 为什么整数除法产生一个 float 而不是另一个整数?

考虑一下Python中的这种划分:Python3.1(r31:73574,Jun262009,20:21:35)[MSCv.150032bit(Intel)]onwin32Type"help","copyright","credits"or"license"formoreinformation.>>>2/21.0这是故意的吗?我强烈记得返回int/int=int的早期版本。我应该怎么办?是否有新的除法运算符或者我必须始终转换?在2.x中,这种行为确实是相反的;见HowcanIforcedivisiontobefloatingpoint?Divisionkeepsroundingdown

PHP 编号 : decimal point visible only if needed

我想知道是否存在一些自动格式化数字的函数,如果我有的话:所以我的回答是,如果我的数据库中只有当它是圆形的时候才有DECIMAL数据格式,是否存在某种删除小数的方法?或者我应该这样做吗? 最佳答案 floatval或简单地转换为floatphp>echofloatval(7.00);7php>echofloatval(2.30);2.3php>echofloatval(1.25);1.25php>echofloatval(1.125);1.125php>echo(float)7.00;7php>echo(float)2.30;2.3p

PHP7.1 json_encode() float 问题

这不是一个问题,因为它更多的是要注意。我将使用json_encode()的应用程序更新到PHP7.1.1,我看到float被更改为有时会扩展到17位的问题。根据文档,PHP7.1.x在编码double值时开始使用serialize_precision而不是精度。我猜这会导致的示例值472.185成为472.18500000000006在该值通过json_encode()之后。自从我发现以来,我已经恢复到PHP7.0.16,并且不再遇到json_encode()的问题。在恢复到PHP7.0.16之前,我还尝试更新到PHP7.1.2。这个问题背后的原因确实源于PHP-FloatingNum

PHP - float 精度

这个问题在这里已经有了答案:Isfloatingpointmathbroken?(31个回答)关闭5年前.$a='35';$b='-34.99';echo($a+$b);结果为0.009999999999998这是怎么回事?我想知道为什么我的程序总是报告奇怪的结果。为什么PHP没有返回预期的0.01? 最佳答案 因为浮点运算!=实数运算。由于不精确造成的差异的一个例子是,对于某些浮点a和b,(a+b)-b!=a。这适用于任何使用float的语言。自从floatingpoint是具有有限精度的二进制数,representablenum

java - 将 float 转换为 double 而不会丢失精度

我有一个原始float,我需要一个原始double。简单地将float转换为double会给我带来奇怪的额外精度。例如:floattemp=14009.35F;System.out.println(Float.toString(temp));//Prints14009.35System.out.println(Double.toString((double)temp));//Prints14009.349609375但是,如果我不进行强制转换,而是将float输出为字符串,并将字符串解析为double,我会得到我想要的:System.out.println(Double.toStrin

java - 如何修复 "The expression of type List needs unchecked conversion...' ?

在Java代码段中:SyndFeedInputfr=newSyndFeedInput();SyndFeedsf=fr.build(newXmlReader(myInputStream));Listentries=sf.getEntries();最后一行产生警告"List类型的表达式需要未经检查的转换才能符合List"有什么合适的方法来解决这个问题? 最佳答案 这是处理Java5之前的API时的常见问题。自动化solutionfromerickson,您可以创建以下泛型方法:publicstaticListcastList(Class

c++ - 将 float 类型转换为 int 的正确方法是什么,反之亦然?

下面的代码通过一些位黑客来执行快速的平方根逆运算。该算法可能是由SiliconGraphics在1990年代早期开发的,它也出现在Quake3中。moreinfo但是,我从GCCC++编译器得到以下警告:取消引用类型双关指针会破坏严格别名规则在这种情况下我应该使用static_cast、reinterpret_cast还是dynamic_cast?floatInverseSquareRoot(floatx){floatxhalf=0.5f*x;int32_ti=*(int32_t*)&x;i=0x5f3759df-(i>>1);x=*(float*)&i;x=x*(1.5f-xhalf