Advertisement
Guest User

Untitled

a guest
Apr 16th, 2014
45
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.20 KB | None | 0 0
  1. function nextNumberTo(number) {
  2. number = number || 0;
  3. var order = calculateOrderOfMagnitude(number);
  4. var lineType = 'notShow';
  5. var tmpNumber;
  6. if (order >= 0) {
  7. tmpNumber = Math.floor(number * 10) / 10 + (0.1) * Math.pow(10, order);
  8.  
  9. if (tmpNumber < -10) {
  10. tmpNumber = Math.ceil(tmpNumber);
  11. }
  12. tmpNumber = tmpNumber.toFixed(1);
  13.  
  14. if ((tmpNumber * 10) % (10 * Math.pow(10, order)) === 0) {
  15. lineType = 'big';
  16. } else if ((tmpNumber * 10) % (5 * Math.pow(10, order)) === 0) {
  17. lineType = 'medium';
  18. } else if ((tmpNumber * 10) % (2 * Math.pow(10, order)) === 0) {
  19. lineType = 'small';
  20. }
  21. } else if (order <= -2) {
  22. tmpNumber = 0.05;
  23. lineType = 'small';
  24. } else {
  25. if (number < 0)
  26. tmpNumber = ((Math.ceil(number * 10).toFixed(0)) / 10 + (0.1)).toFixed(2);
  27. else
  28. tmpNumber = ((Math.floor(number * 10).toFixed(0)) / 10 + (0.1)).toFixed(2);
  29. if (Math.abs(tmpNumber) <= 0.001) {
  30. rmpNumber = 0;
  31. lineType = 'big';
  32. } else if (((tmpNumber * 100) % (1 * 100)) === 0) {
  33. lineType = 'big';
  34. } else if (((tmpNumber * 100) % (0.2 * 100)) === 0) {
  35. lineType = 'medium';
  36. } else if (((tmpNumber * 100) % (0.1 * 100)) === 0) {
  37. lineType = 'small';
  38. }
  39. }
  40. return {
  41. number: parseFloat(tmpNumber),
  42. lineType: lineType
  43. };
  44.  
  45. function calculateOrderOfMagnitude(val) {
  46. // document.write('<span class="">-----' +val +'</span><br>');
  47.  
  48. if (val === 0 || Math.abs(val) < 0.0001)
  49. return -2;
  50. else if (val > -1 && val < 1)
  51. return -1;
  52. else if (val == 1000)
  53. return 3;
  54. else if (val == 1000000)
  55. return 6;
  56. else if (val == 1000000000)
  57. return 9;
  58. else if (val == 1000000000000)
  59. return 12;
  60. else if (val == 10000000000000)
  61. return 1;
  62. else if (val == 1000000000000000)
  63. return 15;
  64. else if (val == 1000000000000000000)
  65. return 18;
  66.  
  67. return Math.floor(Math.log(Math.abs(val)) / Math.LN10);
  68. }
  69. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement