一些数学人请帮忙,我只想转换使用数学。函数。(Pow,Floor......etc)只有一条语句作为可选语句,不使用if来检查后面的55个数字是否从1-4或6-9小数位数。
规则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 ;谢谢
发布于 2011-06-04 04:37:28
规则#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.23455https://stackoverflow.com/questions/6234667
复制相似问题