From 069c70b1b79d82643ad2a777eee72a533a551272 Mon Sep 17 00:00:00 2001 From: Nemesh Date: Sun, 2 Aug 2020 14:45:19 +0300 Subject: [PATCH] precission fix Fixed some glitched numbers --- .vs/FloatToolGUI/v16/.suo | Bin 73728 -> 79872 bytes FloatToolGUI/Main.cs | 71 +++++++++++++++++++++++++++++++++++--- 2 files changed, 67 insertions(+), 4 deletions(-) diff --git a/.vs/FloatToolGUI/v16/.suo b/.vs/FloatToolGUI/v16/.suo index ecb0aafc492d7b854c48aaebce10da1f12d2b677..c7e169ab12826dcd3814cd633048c106fc39aded 100644 GIT binary patch delta 6646 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 u_LVdxQ!vpT$Sm8fES%m>(~DMWhn@(ppy~ zU**?r?zF?LkDc!L$WG~6PmQgvJ=?n4=O5eYnO(Qe(^f$SPP65cQd>?SmND$rOqZPz@RDr1Vl~m0TT2-R?rufNCbIY z9k0&>=8;Mo^;LwZ06i{HX9ntIs$&T{!i)fodFN2uMTj7T65pd!ThXdu!usCI8F)~kkvG!_9#N#gc6>(>hksAh zsCc}G$cY5Etc3}^kL`(?`h=E#SnilBmsh&w-dxjC7BupVh6QsEb)SgOU4YD9c zswWZF5KII!A&W4JkWUEk^{&i7d7>fJagF2~sib~&fL25GYErYD*TwF{WZ2YOIYrSz z-f6Nj3b5`C0m-+#Q}!Sj0&|cG});o zYUJD0VH;DyvD88p4{$6<6QBz_rdBI?$~b8&j!x}?PVAUgj<%(FD4SP+_EJ;mV>GE) zgI)8=l^k-?d>onQf{oZQze2^~A-Nq3rQoQL;gwmxzwI*jz^%mWpgrw371Neoc% zw8O=%3fNELm`=nSITSt)yfU{`#SzZKT>N&7c{9VW_oB2 z5zguH%Oy)BvDE^rlN0Xv%Byg+q~g}c;3Rts!RxOV+@F6gHex>9nIpLIWb5SbgtjyPO<7&krvqr!|8Tvp}KHh?Ojdn9d*ss&W?MUT2dTs zE%!AxINR~;rKHf>qL#LeX4F_`sWZ*l26J|IQC)L;W4*_lVg+}SU1bjJARQQ;N#u1& zCLBp}sQB9E0WN;;nOMO>Mr@%08G+Km)r2%TUz4cUIed3k3Uz#W^kLl}W0wXxQfgez z3=^<3(U5!}4Q&V--b8IaPb&ev3Y}Z0jp?TL1BC4az6)LWb@djw3p;B3{+o)UHDp@0 z*!7{a)F)>o-!psxP{FY~hBUb0>Bp;$uMKVA5?dC3b?j|%hYYkBH)FTv+{+oMf6#p~ zJl*=mc9bKNd*>!$zTl#gE|F8ki@;ZSi{`#r|*GwN%;LKiVYS~*6W%!gbi2%%}> zKcZkEdd*gMjnik>YGrU{0XFcM!e>U$l{FQhGzOOUyJOv+V{41QNpz=oLYZf4dI@D- zdIYgZt$1Z-&rOIiC2HTxbIx_^#yV8|!r~{%xbKf7J5-B^P!L2^@TIm2x5m*bJdp*J z7!)FPrsI{YH!#Uk4o*y+osN?&k(%m8r?Y9(`gUWxzkw&`Wa7P+F1MbtqK%mN#WcRk zJJdOVl`W-cZ#<4`TkM`wE#1(=Q33=`@L%c#YoBcnR{tuk;FSi;TYpuuBTAAge10P;$T1j*4Z$9*K zM&=IJC$-nNX$wK3bK59n;)%`q*gHE#Yzc!H{M4!sHJh>w+1VJg*eo871SNJ^^{T9F zLspJIk{jJP$qbcwgn-6}wVnXrN1E;X-(PYorhf~7w!QC&QNz_S%g#IT& zG4@c7C#V0-kpBHLl)a%v&8~9X^PI-h_S_R8cxv~3%;0&jZ@U6Dk5zf9&h#lUf59S5 zTlnYx1v2-m=fpFiVBmx(9*=^560QFfXsR~s`{l%!lZ#K3ne>BI&)!8cy{cAtm#x*_G!2%h)h7Vm_4fVM9 zVmY=BYoHEy4Ci6?a3V$z>&Z1u-}tcn*QmbJ@SQ6N^L?(mjehJ{gj|}EEqJ`cU9vE~ zY4Zg@7|o5T6^iIoc6zY$i%BUwFXl(VHgQ!5P@qMEVxS}*LS#5Jsu3Mg@Razm44%O| z$2P%>Jn?=9|8*pieteF^lA}z8el56yAwoLI_R9((J+S-E&55@w55C3rPAj){k(pps3Z_a$*i z?~8^Uu{9cIdrl6X1fTCO?5)!--$|nIe+s*(K0w$_c$~18F#cSk@qN_qCAbMl*iYbB zVjtD~p5yn{j|o2^{FJcgXe9!sUW~`uA*F&1^g{)j#vf?K=ym)dFOq2yJl;g`;O5Z<{9y4Fu`C2~{tJFp`{)1w diff --git a/FloatToolGUI/Main.cs b/FloatToolGUI/Main.cs index 5b1185b..da90047 100644 --- a/FloatToolGUI/Main.cs +++ b/FloatToolGUI/Main.cs @@ -25,7 +25,46 @@ public partial class FloatTool : Form Thread thread1; public bool muteSound = false; - + public static string setprecission(double number, int figures) + { + int e = 0; + + while (number >= 10.0) + { + e += 1; + number /= 10; + } + + while (number < 1.0) + { + e -= 1; + number *= 10; + } + + figures--; + + number = (float)Math.Round(number, figures); + + figures += 0 - e; + while (e > 0) + { + number *= 10; + e -= 1; + } + + while (e < 0) + { + number /= 10; + e += 1; + } + + if (figures < 0) + { + figures = 0; + } + + return number.ToString($"f{figures}"); + } static public decimal craft(double[] ingridients, float minFloat, float maxFloat) { decimal avgFloat = 0; @@ -36,6 +75,22 @@ static public decimal craft(double[] ingridients, float minFloat, float maxFloat avgFloat /= 10; return ((decimal)(maxFloat - minFloat) * avgFloat) + (decimal)minFloat; } + static public string craftF(string[] ingridients, float minFloat, float maxFloat) + { + float avgFloat = 0; + float[] arrInput = new float[10]; + for (int i = 0; i < 10; i++) + { + arrInput[i] = Convert.ToSingle(ingridients[i].Replace(".", ",")); + } + foreach (float f in arrInput) + { + + avgFloat += Convert.ToSingle(f); + } + avgFloat /= 10; + return setprecission(((maxFloat - minFloat) * avgFloat) + minFloat, 9); + } static public string getNextRarity(string rarity) { if (rarity == "Consumer") @@ -92,18 +147,26 @@ public void parseCraft(double[] inputs, List outputs, string want, bool float minWear = item["minWear"]; float maxWear = item["maxWear"]; decimal flotOrigin = Math.Round(craft(inputs.ToArray(), minWear, maxWear), 14); - //string flot = ToExactString((double)flotOrigin); - Console.WriteLine(flotOrigin); + + string[] inputStr = new string[10]; + for(int i = 0; i < 10; i++) + { + inputStr[i] = "" + inputs[i]; + } + + string flot = craftF(inputStr, minWear, maxWear); + Console.WriteLine(flotOrigin + " | " + flot); //Debug.WriteLine("[DEBUG] flot = " + flot); // if (wasSort && ((!asc && (double.Parse(flot) > double.Parse(want))) || (asc && (double.Parse(flot) < double.Parse(want))))) { // okSort = true; //} - if (/*flot.StartsWith(want) ||*/ ("" + flotOrigin).StartsWith(want.Replace(".", ","))) + if (flot.StartsWith(want.Replace(".", ",")) || ("" + flotOrigin).StartsWith(want.Replace(".", ","))) { this.Invoke((MethodInvoker)(() => { textBox2.AppendText("Коомбинация найдена!" + Environment.NewLine); textBox2.AppendText("Возможный флоат: " + flotOrigin + Environment.NewLine); + textBox2.AppendText("Проверочный флоат: " + flot + Environment.NewLine); textBox2.AppendText("Список флоатов: ["); if (!muteSound) {