我想要一个php函数,当用52调用它时返回55。我试过round()函数:echoround(94,-1);//90它返回90但我想要95。谢谢。 最佳答案 这可以通过多种方式完成,具体取决于您喜欢的舍入约定:1。四舍五入到下一个5的倍数,排除当前数字行为:50输出55,52输出55functionroundUpToAny($n,$x=5){returnround(($n+$x/2)/$x)*$x;}2。四舍五入到最近5的倍数,包括当前数字行为:50输出50、52输出55、50.25输出50functionroundUp
我想要一个php函数,当用52调用它时返回55。我试过round()函数:echoround(94,-1);//90它返回90但我想要95。谢谢。 最佳答案 这可以通过多种方式完成,具体取决于您喜欢的舍入约定:1。四舍五入到下一个5的倍数,排除当前数字行为:50输出55,52输出55functionroundUpToAny($n,$x=5){returnround(($n+$x/2)/$x)*$x;}2。四舍五入到最近5的倍数,包括当前数字行为:50输出50、52输出55、50.25输出50functionroundUp
这个问题在这里已经有了答案:RetainprecisionwithdoubleinJava(24个回答)关闭4年前。似乎减法触发了某种问题,结果值是错误的。doubletempCommission=targetPremium.doubleValue()*rate.doubleValue()/100d;78.75=787.5*10.0/100ddoublenetToCompany=targetPremium.doubleValue()-tempCommission;708.75=787.5-78.75doubledCommission=request.getPremium().doubl
这个问题在这里已经有了答案:RetainprecisionwithdoubleinJava(24个回答)关闭4年前。似乎减法触发了某种问题,结果值是错误的。doubletempCommission=targetPremium.doubleValue()*rate.doubleValue()/100d;78.75=787.5*10.0/100ddoublenetToCompany=targetPremium.doubleValue()-tempCommission;708.75=787.5-78.75doubledCommission=request.getPremium().doubl
现在我正在尝试这个:inta=round(n);其中n是double但它不起作用。我究竟做错了什么? 最佳答案 片段中round()方法的返回类型是什么?如果这是Math.round()方法,当输入参数为Double时,它会返回Long。所以,你将不得不转换返回值:inta=(int)Math.round(doubleVar); 关于java-四舍五入将其转换为int(java),我们在StackOverflow上找到一个类似的问题: https://st
现在我正在尝试这个:inta=round(n);其中n是double但它不起作用。我究竟做错了什么? 最佳答案 片段中round()方法的返回类型是什么?如果这是Math.round()方法,当输入参数为Double时,它会返回Long。所以,你将不得不转换返回值:inta=(int)Math.round(doubleVar); 关于java-四舍五入将其转换为int(java),我们在StackOverflow上找到一个类似的问题: https://st
在Java中,我想将double转换为整数,我知道你是否这样做:doublex=1.5;inty=(int)x;你得到y=1。如果你这样做:inty=(int)Math.round(x);您可能会得到2。但是,我想知道:由于整数的双重表示有时看起来像1.9999999998或其他东西,是否有可能通过Math.round()创建的双重表示仍会导致截断数字,而不是我们正在寻找的四舍五入的数字(即:代码中的1而不是2)?(是的,我的意思是这样的:x是否有any值,其中y将显示一个截断而不是舍入表示x的结果?)如果是这样:有没有更好的方法可以将double整数转换为舍入整数而不会有截断的风险?
在Java中,我想将double转换为整数,我知道你是否这样做:doublex=1.5;inty=(int)x;你得到y=1。如果你这样做:inty=(int)Math.round(x);您可能会得到2。但是,我想知道:由于整数的双重表示有时看起来像1.9999999998或其他东西,是否有可能通过Math.round()创建的双重表示仍会导致截断数字,而不是我们正在寻找的四舍五入的数字(即:代码中的1而不是2)?(是的,我的意思是这样的:x是否有any值,其中y将显示一个截断而不是舍入表示x的结果?)如果是这样:有没有更好的方法可以将double整数转换为舍入整数而不会有截断的风险?
我正在尝试将BigDecimal值向上舍入到小数点后两位。我正在使用BigDecimalrounded=value.round(newMathContext(2,RoundingMode.CEILING));logger.trace("rounded{}to{}",value,rounded);但它并没有始终如一地做我想要的:rounded0.819to0.82rounded1.092to1.1rounded1.365to1.4//shouldbe1.37rounded2.730to2.8//shouldbe2.74rounded0.819to0.82我不关心有效数字,我只想要两位小数
我正在尝试将BigDecimal值向上舍入到小数点后两位。我正在使用BigDecimalrounded=value.round(newMathContext(2,RoundingMode.CEILING));logger.trace("rounded{}to{}",value,rounded);但它并没有始终如一地做我想要的:rounded0.819to0.82rounded1.092to1.1rounded1.365to1.4//shouldbe1.37rounded2.730to2.8//shouldbe2.74rounded0.819to0.82我不关心有效数字,我只想要两位小数