var zx =1800;
我在大十进制值中有一些值我需要在javascript中将其转换为十进制。
我尝试使用zx.doubleValue()
方法,但我在浏览器控制台中收到"Uncaught ReferenceError: Double is not defined"
错误。
答案 0 :(得分:0)
据我了解,您从后端收到大十进制数。 JavaScript的问题在于,本机Number类型的精度受到限制,因此大十进制将被截断。
您可以使用其中一个库,例如,大数: https://www.npmjs.com/package/big-numbers
这将使您可以将收到的后端号码转换为大号码:
const bigNumberValue = numbers.of([received from backend value]);
完成后,您可以执行任何必需的操作:加,乘等。请在此处查看JavaScript教程:
答案 1 :(得分:0)
var bigdecimal = require("bigdecimal");
var i = new bigdecimal.BigInteger("1234567890abcdefghijklmn", 24);
console.log("i is " + i);
// Output: i is 60509751690538858612029415201127
var d = new bigdecimal.BigDecimal(i);
var x = new bigdecimal.BigDecimal("123456.123456789012345678901234567890");
console.log("d * x = " + d.multiply(x));
// Output: d * x = 7470299375046812977089832214047022056.555930270554343863089286012030
var two = new bigdecimal.BigDecimal('2');
console.log("Average = " + d.add(x).divide(two));
// Output: Average = 30254875845269429306014707662291.561728394506172839450617283945
var down = bigdecimal.RoundingMode.DOWN();
console.log("d / x (25 decimal places) = " + d.divide(x, 25, DOWN));
// Output: d / x (25 decimal places) = 490131635404200348624039911.8662623025579331926181155