我想要一个整数是10,100,1000的倍数等等......
例如,双val = 35然后我想int 40
val = 357然后我想int val = 400
val = 245,567然后我想int val = 300,000
val = 245,567.986然后我也想int = 300,000
C#中有什么可以帮助生成这些整数
我能想到的基本逻辑是:提取第一个整数,向其中加1.计算总位数并添加零(totalno -1).
有没有更好的方法?
我想将这些值分配给图表轴.我试图根据图表的数据点动态创建轴标签值.
JDu*_*ley 28
这应该做你想要的x输入:
double scale = Math.Pow(10, (int)Math.Log10(x));
int val = (int)(Math.Ceiling(x / scale) * scale);
Run Code Online (Sandbox Code Playgroud)
输出:
35 40
357 400
245567 300000
245567.986 300000
Run Code Online (Sandbox Code Playgroud)
如果你想要它来处理负数(假设你想要从0舍入):
double scale = (x == 0 ? 1.0 : Math.Pow(10, (int)Math.Log10(Math.Abs(x))));
int val = (int)(Math.Ceiling(Math.Abs(x) / scale) * scale)* Math.Sign(x);
Run Code Online (Sandbox Code Playgroud)
这使:
-35 -40
0 0
35 40
357 400
245567 300000
245567.986 300000
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2696 次 |
| 最近记录: |