简体   繁体   English

如何在JavaScript中将大十进制值转换为十进制

[英]how to convert big decimal value to decimal in javascript

var zx =1800;

I have some value in big decimal value i need to convert it as decimal in javascript. 我在大十进制值中有一些值,我需要在javascript中将其转换为十进制。

I have tried using zx.doubleValue() method but im getting error as "Uncaught ReferenceError: Double is not defined" In browser console. 我尝试使用zx.doubleValue()方法,但在浏览器控制台中收到"Uncaught ReferenceError: Double is not defined"错误消息。

As I understood you receiving big decimal from backend. 据我了解,您从后端收到大十进制数。 The problem with JavaScript is that native Number type is limited in precision, thus your big decimal will be truncated. JavaScript的问题在于本机Number类型的精度受到限制,因此您的大十进制数将被截断。

You can use one of libraries, for example, big number: https://www.npmjs.com/package/big-numbers 您可以使用以下一种库,例如大号库: https : //www.npmjs.com/package/big-numbers

This will allow you to convert received from backend numbers to big number: 这将使您可以将收到的后端号码转换为大号码:

const bigNumberValue = numbers.of([received from backend value]);

After it is done, you can perform any required operation: add, multiply, etc. Check JavaScript tutorial here: 完成后,您可以执行任何必需的操作:加,乘等。请在此处查看JavaScript教程:

http://bignumbers.tech/tutorials/java-script http://bignumbers.tech/tutorials/java-script

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM