首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >只使用数学函数将规则集合/下降?

只使用数学函数将规则集合/下降?
EN

Stack Overflow用户
提问于 2011-06-04 04:21:59
回答 1查看 582关注 0票数 3

一些数学人请帮忙,我只想转换使用数学。函数。(Pow,Floor......etc)只有一条语句作为可选语句,不使用if来检查后面的55个数字是否从1-4或6-9小数位数。

  • 我想把小数点之后的5位数字转换成小数之后的5位数字,并遵循以下规则,最后总是5位和0位。

规则1:

代码语言:javascript
复制
double number1 = 1.2345* 
if( * from 1 to 4)
   number1 ==> 1.23455 
if ( * from 6 to 9)
  number1  ==> 1.23460 

规则2:

代码语言:javascript
复制
double number2 = 1.2345* 
if( * from 1 to 4)
   number2 ==> 1.23450 

if ( * from 6 to 9)
  number2  ==> 1.23455 

我想出了规则1的答案,但它需要2条语句,我不知道是否只需要1条语句就可以完成。

代码语言:javascript
复制
number1 = Math.Floor((number1 + 0.00005) * 20000) / 20000 - 0.00005;
number1 = Math.Floor((number1 + 0.00005) * 20000) / 20000 ;

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-06-04 04:37:28

规则#1:

代码语言:javascript
复制
var y = (int)((x - 0.00001) * 20000) / 20000.0 + 0.00005;

结果:

代码语言:javascript
复制
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:

代码语言:javascript
复制
var y = (int)(x * 20000) / 20000.0;

结果:

代码语言:javascript
复制
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
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6234667

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档