Advertisement
Guest User

Untitled

a guest
Feb 23rd, 2019
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.07 KB | None | 0 0
  1. local format = string.format
  2. local tonumber = tonumber
  3. local fmt = {
  4. '%.1f',
  5. '%.2f',
  6. '%.3f',
  7. '%.4f',
  8. '%.4f',
  9. '%.5f',
  10. '%.6f',
  11. '%.7f',
  12. '%.8f',
  13. '%.9f',
  14. '%.10f',
  15. '%.11f',
  16. '%.12f',
  17. '%.13f',
  18. '%.14f',
  19. '%.15f',
  20. '%.16f',
  21. }
  22. local function convertreal(v)
  23. for i = 1, #fmt do
  24. local g = format(fmt[i], v)
  25. if tonumber(g) == v then
  26. return g
  27. end
  28. end
  29. return format('%.17f', v)
  30. end
  31.  
  32. local function convertreal2(v)
  33. local g = format('%.16g', v)
  34. if tonumber(g) == v then
  35. return g
  36. end
  37. return format('%.17g', v)
  38. end
  39.  
  40. local function test(s1)
  41. local f1 = tonumber(s1)
  42. local s2 = convertreal(f1)
  43. print(s1)
  44. print(s2)
  45. print('-------------------')
  46. end
  47.  
  48.  
  49. test '0.1'
  50. test '0.000001'
  51. test '0.00000001'
  52. test '0.0000000001'
  53. test '0.000000000001'
  54. test '0.00000000000001'
  55. test '0.0000000000000001'
  56. test '1.012345678901'
  57. test '1.0123456789012'
  58. test '1.01234567890123'
  59. test '1.012345678901234'
  60. test '1.0123456789012345'
  61. test '1.01234567890123456'
  62. test '1.012345678901234567'
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement