仅使用数学函数使用规则向上/向下取整?

问题描述

| 一些数学人员请帮忙,我只想使用数学进行转换。功能。 (Pow,Floor ...等),仅使用单个语句,不使用if else来检查小数点后1-4或6-9的第五位是否是第五位。 我想使用以下规则将十进制后的5位转换为十进制后的5位,始终以5和0结尾。 规则1:
double number1 = 1.2345* 
if( * from 1 to 4)
   number1 ==> 1.23455 
if ( * from 6 to 9)
  number1  ==> 1.23460 
规则2:
double number2 = 1.2345* 
if( * from 1 to 4)
   number2 ==> 1.23450 

if ( * from 6 to 9)
  number2  ==> 1.23455 
我想出了规则1的答案,但它需要2条语句,我想知道是否可以仅用1条语句来完成
number1 = Math.Floor((number1 + 0.00005) * 20000) / 20000 - 0.00005;
number1 = Math.Floor((number1 + 0.00005) * 20000) / 20000 ;
谢谢     

解决方法

        对于规则1:
var y = (int)((x - 0.00001) * 20000) / 20000.0 + 0.00005;
结果:
1.23450 => 1.23450
1.23451 => 1.23455
1.23452 => 1.23455
1.23453 => 1.23455
1.23454 => 1.23455
1.23455 => 1.23455
1.23456 => 1.23460
1.23457 => 1.23460
1.23458 => 1.23460
1.23459 => 1.23460
1.23460 => 1.23460
对于规则2:
var y = (int)(x * 20000) / 20000.0;
结果:
1.23450 => 1.23450
1.23451 => 1.23450
1.23452 => 1.23450
1.23453 => 1.23450
1.23454 => 1.23450
1.23455 => 1.23455
1.23456 => 1.23455
1.23457 => 1.23455
1.23458 => 1.23455
1.23459 => 1.23455
    ,        记住如何舍入(整数):
round (a) = floor (a + .5)
因此,现在将其乘以10的乘积,乘以0.5,然后除以10的乘积,将其加盐,就可以设置好了。     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...