草庐IT

Round-towards-Infinity

全部标签

php - PHP 5.2.17 的 round() 模式 ROUND_HALF_DOWN

我需要在PHP5.2.17中模拟ROUND_HALF_DOWN模式-我无法升级服务器的PHP版本。有什么想法可以实现吗?基本思想是1.895变成1.89,而不是像通常使用round()那样变成1.90。编辑:这个函数似乎可以解决问题:functionnav_round($v,$prec=2){//Seemstofixabugwiththeceilfunction$v=explode('.',$v);$v=implode('.',$v);//Theactualcalculation$v=$v*pow(10,$prec)-0.5;$a=ceil($v)*pow(10,-$prec);ret

javascript - PHP ROUND 与 Javascript ROUND

我发现一个很奇怪的问题,问题是PHP和Javascript中的ROUND方法计算结果不一样!?请看下面的例子:PHPechoround(175.5);//176echoround(-175.5);//-176Javascriptconsole.log(Math.round(175.5));//176console.log(Math.round(-175.5));//-175有人知道为什么吗?以及如何使Javascript和PHP得到相同的结果? 最佳答案 这不是问题,很好documentedIfthefractionalportio

php - round() 除了对数字进行四舍五入还有什么作用?

我刚刚“修复”了以下PHP行中的错误:$value=1091.09;//thefailingtestcase$prop=sprintf('%013d',$value*100);通过添加这些行:$cents=$value*100;//$centsisnow109109$cents=round($cents,2);//$centsisstill109109$prop=sprintf('%013d',$cents);前一个block的结果是"0000000109108",而第二个block的结果是"0000000109109",这是正确的。请注意,我添加了这两行以便能够分别查看调试器中的每个

使用 PHP_ROUND_HALF_DOWN 模式的 round() 函数中的 PHP 5.3.4 可能错误

除非我误解了round()函数在PHP中的工作方式,否则我认为其中存在错误:示例:运行:$prod=201.6*0.000275;echo"NoRound..:".$prod;echo"WithRound:".round($prod,2,PHP_ROUND_HALF_DOWN);PHP返回:NoRound..:0.05544WithRound:0.06我的期望:对于Round,我预计结果为0.05。这个预期结果对吗?环境:PHP5.3.4在带有Apache2.2.17的Windows764位上运行。非常感谢。 最佳答案 这是正确的预

java - Math.round MAX 返回值

我正在使用Math.round,我发现它不会返回任何大于(2^32/2)-1的值,但文档说明它可以/将返回长值,即2^64...下面有一段代码。longbTmp=(long)Math.round(4294967296L);System.out.println(bTmp);System.out.println(Long.MAX_VALUE);哪个输出:21474836479223372036854775807我错过了什么吗? 最佳答案 它正在调用Math.round()的重载,它接受一个float并返回一个int。看thejavado

java - scala:为什么 1/0 是算术异常但 1.0/0.0 = Double.Infinity

似乎不一致的是,在Scala中,整数算术div除以零抛出java.lang.ArithmeticException:/byzero,但float算术(1.0/0.0)返回Double.Infinity。我理解,从类型的角度来看,同时拥有Double.Infinity和Integer.Infinity可能很棘手,但我假设使用scala强大的类型系统,他们可以找到其他方法来解决这方面的问题.还有什么我想念的可以更好地解释这两种不同的行为吗? 最佳答案 这是硬件限制,不是软件限制,原因很简单:IEEE754浮点运算明确支持+Inf和-In

java - Math.round 和 Math.ceil 不工作

我正在尝试对用户输入进行四舍五入,但我似乎可以将我的double四舍五入为int。基本上,当我输入4.4999时,它不会四舍五入到5。有什么想法吗? 最佳答案 Math.ceil()返回上限值。它不能更改它作为参数的变量的值,因为Java按值传递参数。所以你需要做hours=Math.ceil(hours); 关于java-Math.round和Math.ceil不工作,我们在StackOverflow上找到一个类似的问题: https://stackover

java - 将 Java Double Infinity 和 NaN 值存储到 MS SQL 2008 数据库

在我们的业务逻辑中,我们必须处理正负Double.Infinity值以及Double.NaN值。我们必须将这些值存储到MicrosotSQLServer2008数据库中。问题是MicrosotSQLServer不支持无穷大或nan值。(ProblemdescriptionforSQLServer2005,也适用于MSSQLServer2008)。我们使用Hibernate3.6.7作为我们的JPA实现和Microsoft的sqljdbc4驱动程序版本4.0.2206.100。我们试图通过像这样将JPA实体的列定义设置为VARCHAR来解决这个问题@Column(columnDefini

java - ROUND_HALF_EVEN 为什么以及如何在重复应用于一系列计算时最小化累积误差?

我听说ROUND_HALF_EVEN是财务数据计算的首选舍入模式。我很想知道这种舍入模式为什么以及如何减少javadocBigDecimal1.4.2中所述的累积误差。谢谢,院长 最佳答案 来自Wikipedia:Despitethecustomofroundingthenumber4.5upto5,infact4.5isnonearerto5thanitisto4(itis0.5awayfromboth).Whendealingwithlargesetsofscientificorstatisticaldata,wheretren

Codeforces Round 932 (Div. 2) A Entertainment in MAC

题面恭喜你,你被硕士援助中心录取了!但是,你在课堂上感到非常无聊,厌倦了无所事事,于是你给自己想了一个游戏。给你一个字符串sss和一个偶整数nnn。你可以对它进行两种运算:将反向字符串sss添加到字符串sss的末尾(例如,如果$s=$cpm,那么在执行操作$s=$cpmmpc之后)。将当前字符串sss倒转(例如,如果$s=$cpm,则在执行操作$s=$mpc后)。需要确定在进行精确的nnn操作后,可以得到的词序最小的†^{\dagger}†字符串。请注意,您可以按照任意顺序进行不同类型的运算,但必须总共进行nnn次运算。†^{\dagger}†当且仅当以下条件之一成立时,字符串aaa在词法上比