Позволяют нам иметь дело с проблемой изящным способом допускающий повторное использование путь. Следующие семь строк позволят Вам получить доступ к точности с плавающей точкой, которой Вы требуете на любом числе просто путем добавления .decimal
до конца числа, формулы, или созданный в Math
функция.
// First extend the native Number object to handle precision. This populates
// the functionality to all math operations.
Object.defineProperty(Number.prototype, "decimal", {
get: function decimal() {
Number.precision = "precision" in Number ? Number.precision : 3;
var f = Math.pow(10, Number.precision);
return Math.round( this * f ) / f;
}
});
// Now lets see how it works by adjusting our global precision level and
// checking our results.
console.log("'1/3 + 1/3 + 1/3 = 1' Right?");
console.log((0.3333 + 0.3333 + 0.3333).decimal == 1); // true
console.log(0.3333.decimal); // 0.333 - A raw 4 digit decimal, trimmed to 3...
Number.precision = 3;
console.log("Precision: 3");
console.log((0.8 + 0.2).decimal); // 1
console.log((0.08 + 0.02).decimal); // 0.1
console.log((0.008 + 0.002).decimal); // 0.01
console.log((0.0008 + 0.0002).decimal); // 0.001
Number.precision = 2;
console.log("Precision: 2");
console.log((0.8 + 0.2).decimal); // 1
console.log((0.08 + 0.02).decimal); // 0.1
console.log((0.008 + 0.002).decimal); // 0.01
console.log((0.0008 + 0.0002).decimal); // 0
Number.precision = 1;
console.log("Precision: 1");
console.log((0.8 + 0.2).decimal); // 1
console.log((0.08 + 0.02).decimal); // 0.1
console.log((0.008 + 0.002).decimal); // 0
console.log((0.0008 + 0.0002).decimal); // 0
Number.precision = 0;
console.log("Precision: 0");
console.log((0.8 + 0.2).decimal); // 1
console.log((0.08 + 0.02).decimal); // 0
console.log((0.008 + 0.002).decimal); // 0
console.log((0.0008 + 0.0002).decimal); // 0
За Ваше здоровье!
В папке AppData должны быть записаны данные для отдельных приложений.
Следует использовать SHGetKnownFolderPath с FOLDERID_LocalAppData.
В управляемом коде следует использовать System.Environment.GetFolderPath с System.Environment.SpecialFolder.LocalApplicationData.
Да, есть определенные места. Рассмотрите эту статью msdn как первую ссылку. В нем упоминаются местоположения:
CSIDL_APPDATA
CSIDL_LOCAL_APPDATA
CSIDL_COMMON_APPDATA
В собственном коде метод SHGetKnownFolderPath
должен оказаться полезным.
В управляемом коде вы можете использовать Environment.GetFolderPath ()
. Если вы работаете с определенной структурой приложения, например с формами Windows, вы можете получить еще более простой доступ с помощью прямых свойств, таких как Application.LocalUserAppDataPath
(это моя любимая техника). Путь к платформе будет включать специфические для приложения квалификаторы на пути, который он возвращает, чтобы различать (например) разные версии вашего приложения.