草庐IT

num_round

全部标签

Java BigDecimal : Round to the nearest whole value

我需要以下结果100.12->100.00100.44->100.00100.50->101.00100.75->101.00.round()还是.setScale()?我该怎么办? 最佳答案 您可以使用setScale()将小数位数减少为零。假设value持有要四舍五入的值:BigDecimalscaled=value.setScale(0,RoundingMode.HALF_UP);System.out.println(value+"->"+scaled);使用round()有点复杂,因为它需要您指定要保留的位数。在您的示例中,

java - BigDecimal setScale 和 round

这两个调用有什么区别?(有吗?)//1.newBigDecimal("3.53456").round(newMathContext(4,RoundingMode.HALF_UP));//2.newBigDecimal("3.53456").setScale(4,RoundingMode.HALF_UP); 最佳答案 提到但未直接提及的一个重要点是“precision”和“scale”之间的区别以及它们在这两个语句中的使用方式。"precision"是数字中有效数字的总数。“scale”是小数点右边的位数。MathContext构造函

c++ - 为什么很多(旧)程序使用 floor(0.5 + input) 而不是 round(input)?

差异在于返回的值提供了我相信的平局输入,例如thiscode:intmain(){std::cout.precision(100);doubleinput=std::nextafter(0.05,0.0)/0.1;doublex1=floor(0.5+input);doublex2=round(input);std::cout哪个输出:10但它们最终只是不同的结果,一个选择它喜欢的一个。我看到很多“旧”C/C++程序使用floor(0.5+input)而不是round(input)。有什么历史原因吗?CPU上最便宜? 最佳答案 st

c++ - C++ 中的 Round() 在哪里?

这个问题在这里已经有了答案:关闭13年前。重复:round()forfloatinC++我正在使用VS2008并且我已经包含了math.h但我仍然找不到一个圆形函数。存在吗?我在google上看到一堆“添加0.5并转换为int”的解决方案。这是最佳做法吗? 最佳答案 你可以使用C++11的std::round().如果您仍然坚持旧标准,您可以使用std::floor(),它总是四舍五入到较小的数字,和std::ceil(),总是四舍五入到较大的数字。要获得正常的舍入行为,您确实会使用floor(i+0.5)。这种方式会给您带来负数问

c++ - C++ 中的 Round() 在哪里?

这个问题在这里已经有了答案:关闭13年前。重复:round()forfloatinC++我正在使用VS2008并且我已经包含了math.h但我仍然找不到一个圆形函数。存在吗?我在google上看到一堆“添加0.5并转换为int”的解决方案。这是最佳做法吗? 最佳答案 你可以使用C++11的std::round().如果您仍然坚持旧标准,您可以使用std::floor(),它总是四舍五入到较小的数字,和std::ceil(),总是四舍五入到较大的数字。要获得正常的舍入行为,您确实会使用floor(i+0.5)。这种方式会给您带来负数问

java - 如何解决 Java Rounding Double 问题

这个问题在这里已经有了答案: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

java - 如何解决 Java Rounding Double 问题

这个问题在这里已经有了答案: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

java - 为什么 int num = Integer.getInteger ("123") 会抛出 NullPointerException?

以下代码抛出NullPointerException:intnum=Integer.getInteger("123");我的编译器是否在null上调用getInteger,因为它是静态的?这没有任何意义!发生了什么事? 最佳答案 大局这里有两个问题:IntegergetInteger(String)没有做你认为它做的事情在这种情况下返回null从Integer到int的赋值导致自动拆箱由于Integer为null,NullPointerException被抛出要将(String)"123"解析为(int)123,您可以使用例如int

java - 为什么 int num = Integer.getInteger ("123") 会抛出 NullPointerException?

以下代码抛出NullPointerException:intnum=Integer.getInteger("123");我的编译器是否在null上调用getInteger,因为它是静态的?这没有任何意义!发生了什么事? 最佳答案 大局这里有两个问题:IntegergetInteger(String)没有做你认为它做的事情在这种情况下返回null从Integer到int的赋值导致自动拆箱由于Integer为null,NullPointerException被抛出要将(String)"123"解析为(int)123,您可以使用例如int

php - mysql_fetch_array()/mysql_fetch_assoc()/mysql_fetch_row()/mysql_num_rows 等...期望参数1是资源

我正在尝试从MySQL表中选择数据,但收到以下错误消息之一:mysql_fetch_array()expectsparameter1toberesource,booleangiven这是我的代码:$username=$_POST['username'];$password=$_POST['password'];$result=mysql_query('SELECT*FROMUsersWHEREUserNameLIKE$username');while($row=mysql_fetch_array($result)){echo$row['FirstName'];}