MCPcopy Create free account
hub / github.com/corbanbrook/dsp.js / nfCoreScalar

Function nfCoreScalar

examples/js/processing.js:4908–4956  ·  view source on GitHub ↗
(value, plus, minus, leftDigits, rightDigits, group)

Source from the content-addressed store, hash-verified

4906 };
4907
4908 function nfCoreScalar(value, plus, minus, leftDigits, rightDigits, group) {
4909 var sign = (value < 0) ? minus : plus;
4910 var autoDetectDecimals = rightDigits === 0;
4911 var rightDigitsOfDefault = (rightDigits === undef || rightDigits < 0) ? 0 : rightDigits;
4912
4913
4914 // Change the way the number is 'floored' based on whether it is odd or even.
4915 if (rightDigits < 0 && Math.floor(value) % 2 === 1) {
4916 // Make sure 1.49 rounds to 1, but 1.5 rounds to 2.
4917 if ((value - Math.floor(value)) >= 0.5) {
4918 value += 1;
4919 }
4920 }
4921
4922
4923 var absValue = Math.abs(value);
4924 if(autoDetectDecimals) {
4925 rightDigitsOfDefault = 1;
4926 absValue *= 10;
4927 while(Math.abs(Math.round(absValue) - absValue) > 1e-6 && rightDigitsOfDefault < 7) {
4928 ++rightDigitsOfDefault;
4929 absValue *= 10;
4930 }
4931 } else if (rightDigitsOfDefault !== 0) {
4932 absValue *= Math.pow(10, rightDigitsOfDefault);
4933 }
4934
4935 var number = Math.round(absValue);
4936 var buffer = "";
4937 var totalDigits = leftDigits + rightDigitsOfDefault;
4938 while (totalDigits > 0 || number > 0) {
4939 totalDigits--;
4940 buffer = "" + (number % 10) + buffer;
4941 number = Math.floor(number / 10);
4942 }
4943 if (group !== undef) {
4944 var i = buffer.length - 3 - rightDigitsOfDefault;
4945 while(i > 0) {
4946 buffer = buffer.substring(0,i) + group + buffer.substring(i);
4947 i-=3;
4948 }
4949 }
4950 if (rightDigitsOfDefault > 0) {
4951 return sign + buffer.substring(0, buffer.length - rightDigitsOfDefault) +
4952 "." + buffer.substring(buffer.length - rightDigitsOfDefault, buffer.length);
4953 } else {
4954 return sign + buffer;
4955 }
4956 }
4957
4958 function nfCore(value, plus, minus, leftDigits, rightDigits, group) {
4959 if (value instanceof Array) {

Callers 1

nfCoreFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected