分裂浮动
本文关键字:分裂 | 更新日期: 2023-09-27 18:17:51
我有一个float = 1.30452F
对于我的WPF UI,我需要将浮动分成三个部分:
- 第1部分: 1.30
- 第二部分: 45
- 第三部分: 2
一个可行的解决方案是:
float myFloat = 1.30452F;
string part1 = myFloat.ToString("0.00");
string part2 = myFloat.ToString().Substring(4,2);
string part3 = myFloat.ToString().Substring(6);
有没有更性能的和优雅的分割浮点数的方法?
稍微改进一下(尽管使用相同的方法)将减少字符串操作。我将你的原始代码运行了100万次,并在其上添加了计时器,结果是~890ms。此更改将其降低到328毫秒。不错的进步。
string myString = myFloat.ToString();
string part1 = myString.Substring(0, 4);
string part2 = myString.Substring(4, 2);
string part3 = myString.Substring(6);
我认为您想要的不仅仅是part1的前4个字符。这是一个数学版本。这个运行在31ms。
float part1 = (int)(myFloat * 100F) / 100F;
int part2 = (int)((myFloat - part1) * 10000F);
int part3 = (int)((myFloat - part1 - (part2 / 10000F)) * 100000);