我有一个浮点数=1.30452F
对于我的wpf用户界面,我需要将浮动分成三部分:
第1部分:1.30
第2部分:45
第3部分: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万次,做了一个定时器,它是890毫秒。这个变化下降到328毫秒。一个不错的改进。
string myString = myFloat.ToString();
string part1 = myString.Substring(0, 4);
string part2 = myString.Substring(4, 2);
string part3 = myString.Substring(6);
我想你不仅仅想要第一部分的前4个字符。这是一个数学版本。这个是31毫秒。
float part1 = (int)(myFloat * 100F) / 100F;
int part2 = (int)((myFloat - part1) * 10000F);
int part3 = (int)((myFloat - part1 - (part2 / 10000F)) * 100000);